请教DLL中导出函数的问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 13:47:27
因为情况需要,我把一个用CBC写的动态链接库改成用VC做的,然后下一步移植到Linux中去(最终目的)
我用VC把那个CBC的项目重构了一遍,编译什么的都通过了,,生成的DLL用dumpbin查看的时候,我写的导出函数怎么成了这个样子了,不知道怎么修改,请高手指点:
Java_jiamicall_jiami = @ILT+20(_Java_jiamicall_jiami@12)
原来CBC的那个导出函数是 Java_jiamicall_jiami ,不知道为什么会这样,我用了DEF文件定义了,没定义前函数是 : _Java_jiamicall_jiami = @ILT+20(_Java_jiamicall_jiami@12).我DEF定义:

LIBRARY jiamidll

EXPORTS
Java_jiamicall_jiami
请高手帮忙解决

我记得dll在MFC中是可以使用两种方式导出的,一个是c语言规则extern "C",这种方式导出的函数是不改变函数名的。另一种是C++规则,在函数名前加上@。当然也可以在.def文件中自定义输出名。但格式绝不是你写的这个样子。好像是:
EXPORTS
Java_jiamicall_jiami @MyFunName

好久不用了,记不清了,希望对你有所帮助

另外windows的东西应该不能移植到linux下面的。因为两者的操作系统内核都有很大区别的。dll只能实现同一个操作系统的开发平台之间的跨越