vs2010MFC中调用DLL
有一个dll,dwg.dll,dwg.h,dwg.lib共三个文件
原来在vc6.0/mfc下调用没错误,现在转换到vs2010/mfc下却出错。
dll详细如下:
//------------用C写.DWG图形函数,程序名dwg.c,样板文件为ACAD 10.0版-----------
#ifndef _WRITE_ACAD_DWG_H
#define _WRITE_ACAD_DWG_H
#define int __int16
#pragma pack( 1 ) //Specifies packing alignment for structure
//******采用PASCAL调用方式以便为VB使用********************
int FAR PASCAL wpoint(double x,double y);
int FAR PASCAL startdwg(char *filename);
int FAR PASCAL enddwg();
int FAR PASCAL chgcolor(char nom);
...
...
#pragma pack()
#undef int
#endif
提示错误如下:
1>k2View.obj : error LNK2019: 无法解析的外部符号 "short __stdcall settextstyle(char)" (?settextstyle@@YGFD@Z),该符号在函数 "public: virtual void __thiscall Ck2View::OnDraw(class CDC *)" (?OnDraw@Ck2View@@UAEXPAVCDC@@@Z) 中被引用
1>k2View.obj : error LNK2019: 无法解析的外部符号 "short __stdcall startdwg(char *)" (?startdwg@@YGFPAD@Z),该符号在函数 "public: virtual void __thiscall Ck2View::OnDraw(class CDC *)" (?OnDraw@Ck2View@@UAEXPAVCDC@@@Z) 中被引用
请教该问题如何解决?
[解决办法]
是否dwg.lib添加到工程?
还有DLL和VS2010工程的字符编码要一致,UNICODE或者多字节
[解决办法]
就是说,要么都是unicode,要么都是多字节编码
你把dwg.lib添加到Property->Linker->Input->Additional Dependencies试试
[解决办法]
报这个错就是说明你没有完全引入。
.h是加载进来了
lib没加载好。
#pragma comment(lib,"XXX.lib") 或者Linker-》Additional Dependencies
你是不是Lib的绝对路径没放到正确位置呢?
码制问题的错误经常犯,但是报错内容不是这个。不过也要保证dll的(Unicode或多字节)和主工程一致。
[解决办法]
似乎是.lib文件没有正确引入。