vs2010MFC中调用DLL

kuangwei86903222 2012-10-30 11:47:34
有一个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) 中被引用


请教该问题如何解决?


...全文
384 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jimette 2013-03-13
  • 打赏
  • 举报
回复
您好, 由于您长时间不结贴,上一次答复已超一个月并且已有最佳答案,本人帮你结贴。 若是觉得答案不嘉,请放在本版的疑难杂症帖链接: http://bbs.csdn.net/topics/390351579。 如果您有什么意见,请您联系我。
rxguoblp 2012-10-31
  • 打赏
  • 举报
回复
似乎是.lib文件没有正确引入。
BombZhang 2012-10-30
  • 打赏
  • 举报
回复
就是说,要么都是unicode,要么都是多字节编码
你把dwg.lib添加到Property->Linker->Input->Additional Dependencies试试
kuangwei86903222 2012-10-30
  • 打赏
  • 举报
回复
BombZhang
我把unicode去掉了,
“还有DLL和VS2010工程的字符编码要一致”怎么理解?
kuangwei86903222 2012-10-30
  • 打赏
  • 举报
回复
补充下:
我的调用方法是,
首先在“解决方案管理器(一大堆.h和.cpp文件)”加载上dwg.h文件和dwg.lib文件,
在CMyView中#include"dwg.h"
在CMyView::MyFunc中直接调用dwg.dll中的函数。
这样做在vc6下是没错的。
BombZhang 2012-10-30
  • 打赏
  • 举报
回复
是否dwg.lib添加到工程?
还有DLL和VS2010工程的字符编码要一致,UNICODE或者多字节
kuangwei86903222 2012-10-30
  • 打赏
  • 举报
回复
vs2010的环境我不太熟悉,我把vc6的程序转vc2010的时候出的问题,你能加我QQ吗,我还是不太清楚,想再请教你一下。499611367
看不见的裂痕 2012-10-30
  • 打赏
  • 举报
回复
报这个错就是说明你没有完全引入。
.h是加载进来了
lib没加载好。

#pragma comment(lib,"XXX.lib") 或者Linker-》Additional Dependencies
你是不是Lib的绝对路径没放到正确位置呢?

码制问题的错误经常犯,但是报错内容不是这个。不过也要保证dll的(Unicode或多字节)和主工程一致。
kuangwei86903222 2012-10-30
  • 打赏
  • 举报
回复
我已经把dwg.lib加载进来了,难道vc2010不能和vc6那样加载吗

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧