不用LIB的动态链接库 ,我用Loadlibrary() 和 GetProcAddress() 来加载和获得函数地址。
比如 DLL的 CPP文件如下:
exterv "C" _decpesc(dllexport) int sum(int i, int j) ;int sum(int i, int j)
{
return i + j ;
}Def:
LIBRARY ***
EXPORT sum ;在调用文件中:
int main()
{
HMOUDLE hlibrary = Loadlibrary("**.dll") ;
MyFunName pfnSum = (MyFunName)GetprocAddress(hlibrary,"sum") ; //后面是对sum函数的使用,就不写了,就是很简单得 cin输入 cout输出.....
}可是程序运行 等我输入 一个整数时就错误 退出。
但是如果我在DLL创建中 sum不带形参 直接sum();
那样的话,程序就不会出错为什么?。为什么调用 有形参的 函数 不用LIB的DLL就会出错,而用LIB的DLL就没问题?
比如 DLL的 CPP文件如下:
exterv "C" _decpesc(dllexport) int sum(int i, int j) ;int sum(int i, int j)
{
return i + j ;
}Def:
LIBRARY ***
EXPORT sum ;在调用文件中:
int main()
{
HMOUDLE hlibrary = Loadlibrary("**.dll") ;
MyFunName pfnSum = (MyFunName)GetprocAddress(hlibrary,"sum") ; //后面是对sum函数的使用,就不写了,就是很简单得 cin输入 cout输出.....
}可是程序运行 等我输入 一个整数时就错误 退出。
但是如果我在DLL创建中 sum不带形参 直接sum();
那样的话,程序就不会出错为什么?。为什么调用 有形参的 函数 不用LIB的DLL就会出错,而用LIB的DLL就没问题?
解决方案 »
- 为什么我的IP_ADAPTER_INFO.CurrentIpAddress为空?
- 一个奇怪的问题__declspec(dllexport)和__declspec(dllimport)好像没有区别
- 关于高级显卡上的双屏接口如何使用程序控制两个屏幕间的切换?100分数相送
- 急急急,如何去掉边框也能用鼠标改变窗口大小
- 我想在系统目录下新建一个文件应该怎么办?
- 怎么作才能使一个win32 static Library中的一个函数返回多个变量值
- 郁闷中,怎样在MainFrame中处理当用户点击工具条中下拉箭头时发出的TBN_DROPDOWN通知消息
- 关于MFC的问题!!!
- VC中CString参数传到fastReport模板的问题?
- Vs2010中CString&问题
- 视频播放信息的一些问题!
- map的sizeof
可是之前 我用带有lib的都可以啊?
?
我刚做了下测试,没问题啊你用depends.exe看看导出的函数到底是什么样子
我在DLL里面定义的函数sum 只是普通的int 类型 但是执政类型的声明却是WINAPI的 所以是错误。如果用WINAPI的话 DLL里面的函数就必须是 CALLBACK WINAPI了类型的。我只要把WINAPI删了就可以了。。
很谢谢大家啊。。