在之前的开发中,我的dll和调用此dll的应用程序都是用dedug来编译的.当程序开发的差不多了,我觉得可以release了,我就先在dll项目中用release编译了dll,然后照老样子把头文件和release文件夹中的dll和lib文件拷到应用程序中.可是在应用程序中用release编译程序时,就提示错误"无法解析的外部符号",都是在应用程序中调用的dll中的函数,这是怎么回事?大家教教我啊
解决方案 »
- 俩窗口都设置了半透明属性//问题
- 虚拟打印OEMStartDoc获取PPT的文件名的奇怪问题
- 关于SOCKET的简单问题
- 求个思路(Socket的重连)
- 用URLDownloadToFile做类似于IE下载
- [原创&交流]编程实现自定义解决方案
- VC单文档多视图控件初始化问题
- 图形图像公司?
- 如何发送网页形式的邮件?
- 通过ADO pCmd->Excute()执行update语句后修改库中记录时,是不是直接提交到库中的?
- 看了VC技术内幕中的COM部分,不是太明白,求一些COM的资料?另再问MFC中关加解密,信息摘要,数字签名的几个类?谢谢,在线等。
- 这个是什么错误?error C2039: 'Format' : is not a member of 'CStatic'
General属性页里头设置,Use MFC in Shared dll
batchDlg.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall operateDB::DestroyStatisticStruct(struct statisticrecord * &)" (__imp_?DestroyStatisticStruct@operateDB@@QAEXAAPAUstatisticrecord@@@Z) ,该符号在函数 "public: virtual int __thiscall CbatchDlg::OnInitDialog(void)" (?OnInitDialog@CbatchDlg@@UAEHXZ) 中被引用
...
都是这种错误,找不到我在应用程序中调用的dll函数,"operateDB::DestroyStatisticStruct(struct statisticrecord * &)"就是我的dll头文件中的函数声明.我曾经看过一个帖子,作者最后找到原因是用了debug的dll库,可是大家看我在一楼写的操作,我把dll改成release了啊.
#ifdef DLLCLASSONE_EXPORTS
#define DLLCLASSONE_API __declspec(dllexport)
#else
#define DLLCLASSONE_API __declspec(dllimport)
#endifpublic:
operateDB();
......
这样没什么问题吧
#pragma comment(lib,"XXX.lib") //你的lib名
试试看