首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

vs2010MFC中调用DLL解决方法

2013-03-19 
vs2010MFC中调用DLL有一个dll,dwg.dll,dwg.h,dwg.lib共三个文件原来在vc6.0/mfc下调用没错误,现在转换到vs

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文件没有正确引入。

热点排行