博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自己动手编写一个VS插件(七)
阅读量:6265 次
发布时间:2019-06-22

本文共 1003 字,大约阅读时间需要 3 分钟。

作者:朱金灿

来源:

 

        继续开发VS插件。今天在添加ATL控件时出现一个“未能返回新代码元素”的错误,如下图:

       

 

       解决办法是删除删掉ncb文件即可。

      成功添加一个ATL控件后,编译工程后出现一些链接错误:

1>Connect.obj : errorLNK2001: 无法解析的外部符号_IID_IStatDlg

1>StatDlg.obj : errorLNK2001: 无法解析的外部符号_IID_IStatDlg

1>Connect.obj : errorLNK2001: 无法解析的外部符号_LIBID_DevAssistLib

1>StatDlg.obj : errorLNK2001: 无法解析的外部符号_LIBID_DevAssistLib

1>Connect.obj : errorLNK2001: 无法解析的外部符号_CLSID_StatDlg

1>StatDlg.obj : errorLNK2001: 无法解析的外部符号_CLSID_StatDlg

      解决办法是把生成的AddIn_i.c加到工程里。

      实际上我们看到VS插件开发中很多时候是围绕EnvDTE80::DTE2这个对象来转的,但是如何获取EnvDTE80::DTE2,网上有一篇文章:。粗看了一下,感觉颇为复杂。其实有更好的办法是把它作为一个全局变量来进行。具体如下:

CComPtr
g_pDTE;STDMETHODIMP CConnect::OnConnection(IDispatch *pApplication, ext_ConnectMode ConnectMode, IDispatch *pAddInInst, SAFEARRAY ** /*自定义*/ ){ HRESULT hr = S_OK; pApplication->QueryInterface(__uuidof(DTE2), (LPVOID*)&m_pDTE); pAddInInst->QueryInterface(__uuidof(EnvDTE::AddIn), (LPVOID*)&m_pAddInInstance); if(NULL!=m_pDTE) g_pDTE = m_pDTE; …….}

参考文献:

1.

转载于:https://www.cnblogs.com/lanzhi/p/6470449.html

你可能感兴趣的文章
数字机顶盒的技术发展趋势
查看>>
Linux下PXE和KickStart实现自动化安装系统
查看>>
SSH远程登录服务
查看>>
数据透视表在access和excel中的应用举例
查看>>
Linux msmtp+mutt
查看>>
jQuery中文乱码完美解决方案
查看>>
Outlook To-do-bar reminder无法使用
查看>>
重命名kvm虚拟机
查看>>
SMS客户机发现以及在客户机上安装客户端
查看>>
第二章 1.绘制文本
查看>>
Spring Aop(十五)——Aop原理之Advised接口
查看>>
2015 Multi-University Training Contest 3 1001 Magician
查看>>
比男友更了解你的穿搭喜好,这个模型可以陪你挑衣服 | 论文
查看>>
8.Azure文件(文件共享)-NAS(中)
查看>>
英语每日听写练习 Day 11
查看>>
初定中原之windows域的创建
查看>>
【ARM】s3c2440裸机之RTC数字时钟
查看>>
Gradle 1.12用户指南翻译——第三十四章. JaCoCo 插件
查看>>
开启语音键盘功能
查看>>
GridView与CheckBox完美结合
查看>>