|
概述
针对 ARMI的生成(Build)工作总体上比针对 WINS的要困难得多,因此,从一开始就寻找由 gcc报告的额外编译错误和报警信息就是再正常不过了。首先这是由于: 在很多情况下gcc比微软的编译器要严格得多,而且具有一些微妙的差异,它们在第一次的 ARMI 生成(Build)过程中就会表现出来。下面几节涉及一些最通用的问题。
4.2函数导出
当定义导出函数时,gcc的工具链比 WINS 工具链要严格得多。从某个 DLL 导出一个函数的正确方式如下所示:在头文件中:
class CMyClass : public CBase
{ IMPORT_C void Function();}
在 CPP 文件中:EXPORT_C void CMyClass::Function()
{ }
WINS
否将 EXPORT_工具链并不在意是C 排除在 CPP 文件之外了,总之它会导出该函数。然而,gcc工具链需要IMPORT_ C 和 EXPORT_C之间能完美匹配。如果不能,就不能从 DLL 中导出该函数。最终,当试图连接这个 DLL 时将导致如“无法找到函数”之类的错误。
[1] [2] 下一页
|