mfc调用dll对话框问题 10

主调cpp文件中:#pragmacomment(lib,"D:\\debug\\MakeExpression.lib")__declspec(dllimport)void... 主调cpp文件中:
#pragma comment(lib,"D:\\debug\\MakeExpression.lib")
__declspec(dllimport) void OpenDlg();

void CMainFrame::OnSnake()
{
OpenDlg();
}

ExpressionDlg.h里面定义:
__declspec(dllexport) void OpenDlg();
ExpressionDlg.cpp文件中:
void OpenDlg(){ CExpressionDlg NewDlg; NewDlg.DoModal();}

报错如下:求大神指导
1>正在链接...
1>MainFrm.obj : error LNK2019: 无法解析的外部符号 "void __cdecl OpenDlg(void)" (?OpenDlg@@YAXXZ),该符号在函数 "protected: void __thiscall CMainFrame::OnSnake(void)" (?OnSnake@CMainFrame@@IAEXXZ) 中被引用
1>D:\GameClient\Debug\GameClient.exe : fatal error LNK1120: 1 个无法解析的外部命令
1>生成日志保存在“file://d:\GameClient\GameClient\Debug\BuildLog.htm”
1>GameClient - 1 个错误,0 个警告
========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ==========
展开
 我来答
paradise300
2014-09-02 · TA获得超过3560个赞
知道大有可为答主
回答量:2589
采纳率:84%
帮助的人:499万
展开全部
遇到这种情况,一般来说是你的导出函数名称与你头文件中的不一致,这是由于C++编译器对导出函数进行了修饰,你尝试着用extern "C" 前缀来导出,保证其函数名不被修饰。怎么看导出函数?dll文件用Dependency walker,lib文件用dumpbin,这两个工具都是微软的,其中dumpbin是VS自带的,在VC\Bin目录中。当然,另外还可以用def文件来定义导出函数,这样你程序中的函数前就不需要加导出符了。
夏忻劫男8
2014-09-01 · 超过61用户采纳过TA的回答
知道答主
回答量:144
采纳率:75%
帮助的人:56.7万
展开全部
这个题我已经解决了,就是需要加上一句AfxEnableControlContainer(); 希望以后用的朋友留意了!
打字不易,如满意,望采纳。
追问
求你别拷贝啊。加上之后也不行,还是同样的错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式