鱼C论坛

 找回密码
 立即注册
查看: 4182|回复: 3

高手们帮帮我吧!EXE调用DLL里的函数问题!!!

[复制链接]
发表于 2013-2-12 17:28:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在EXE里调用DLL里的函数编译会出错!
这是源代码 :
===================================================
#pragma comment(lib, "GameDll.lib")

__declspec(dllimport) void SetHook();

void CGameWGDlg::OnBnClickedButtonSethook()
{
// TODO: 在此添加控件通知处理程序代码
    SetHook();
}
======================================================

这是编译出错的信息:
=====================================================
1>GameWGDlg.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) void __cdecl SetHook(void)" (__imp_?SetHook@@YAXXZ),该符号在函数 "public: void __thiscall CGameWGDlg::OnBnClickedButtonSethook(void)" (?OnBnClickedButtonSethook@CGameWGDlg@@QAEXXZ) 中被引用
1>D:\Documents\Visual Studio 2008\Projects\GameWG\Debug\GameWG.exe : fatal error LNK1120: 1 个无法解析的外部命令
======================================================

如果注释掉SetHook()就可以编译成功! DLL和LIB文件也都放在了工程目录里! 这是什么情况呢?
搞了一下午也没解决!希望高手可以帮帮我!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-2-12 23:48:22 | 显示全部楼层
可能是该库文件是用C++写的,且SetHook函数没有用extern "C"修饰,因此由于C++函数重载的原因,函数名将变得很奇特。我觉得你可以把你的工程改为C++类型,就是把源文件的扩展名由.c改为.cpp
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-2-13 00:03:40 | 显示全部楼层
原来如此啊  谢谢版主
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-2-13 13:14:52 | 显示全部楼层
谢谢斑竹哈!已经解决了!我把DLL和LIB文件放错目录了!
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-8 10:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表