DLL函数定义和函数实现写函数类型的不同, 引起不能使用Dll中的函数
来源:互联网 发布:linux 内存管理 编辑:程序博客网 时间:2024/05/17 02:34
<2011_0112>
/**
* 这个.h是给Dll的导出函数的头文件
*/
MY_DLL_API int __stdcall DoSomething(INT &nLen);
/**
* 实现文件
*/
MY_DLL_API int __stdcall DoSomething(DWORD &nLen)
{
//...
return S_OK;
}
/**
* def文件
*/
LIBRARY "xxlib"
DESCRIPTION 'xxLib Windows Dynamic Link Library'
EXPORTS
DoSomething
编译不报错, 等用到DoSomething函数时, 总是提示无法解决的外部函数.
工程中的函数名字起的比较长, 30几个字符长度. 入参4个, 这个写错的入参在最后一个.
自己折磨自己,花了5个小时来解决这个问题.
总结: 标准win32Dll, 导出的是内建类型. 都是全局函数, 编译时, 并不需要导出函数的头文件.
那个头文件是给调用者配合.lib一起使用的, 要是不用.h,和.lib, 就得动态调用.
还有一点,入参名称起名不好,引起的问题真不小. 要是原先是INT &nLen, 当长度不够,需要改变时, 应写成DWORD &dwLen,
如果是这样,问题能马上就发现.
不知道好习惯,是不是都是碰壁得来的...
回来做了个实验, 验证了这个问题.
函数的形参是由函数实现的形参决定的, 和导出函数头声明无关. 但是也能编译的过去,很怪的.
- DLL函数定义和函数实现写函数类型的不同, 引起不能使用Dll中的函数
- 导出dll的函数定义
- DLL中的窗口使用PreTranslateMessage函数实现
- TCHAR引起的DLL函数导出问题
- DLL函数导出类型
- DLL中的dllMain入口函数的使用
- dll中的dllmain函数
- DLL中的main函数
- User32.dll 中的函数
- 无法解析的外部符号 dll中的函数不能识别
- 编程c++dll , DLL 的编写,导出函数 ,使用函数
- dll中函数定义的关键词
- dll中函数定义的关键词
- dll导出函数定义规范
- DLL函数
- 关于实现隐藏DLL中的函数
- DLL导出函数使用wchar_t类型的问题
- C++中函数定义返回类型和内部实现返回类型不同的原因
- 很久没来
- 最优归并模式——自己实现的霍夫曼树
- python 学习笔记
- 如何使用JLINK在ADS1.2环境下调试硬件?
- 开始我的博客生活
- DLL函数定义和函数实现写函数类型的不同, 引起不能使用Dll中的函数
- vmware ubuntu 10.04升级小记
- 关闭RTTI反射机制减小Delphi 2010编译出的可执行文件的大小
- Windos Vista及Windows 7 Shell命令列表
- Writing DLLs for Linux apps (Why bother to write a whole app when you can just write a plugin?)
- 基于命令的批量修改文件内容
- 寒假计划
- makefile分析
- 查询一个表中的两个字段值相同的数据