用BCB是万般无奈,硬性要求。无奈归无奈,还是把一些经验总结下来。
我还是没有勇气把整个工程文件在BCB里面编译。用VC生成好了DLL,再用用BCB自带的implib.exe工具转换一下。
- VC的DLL在BCB中用要注意一下几点:
1.implib转换的时候,一定要用-a选项。格式是:implib.exe -a BCB.lib VC.dll
也就是说,你必须在vc下生成动态链接库,静态链接库是没办法转换的。
2.即便是转换成了BCB的lib,dll文件也是BCB中需要的。一定要copy过去。
- 再说说vc与BCB的几点不同
1.在vc中调用dll的时候在setting->link里面指定相应lib的名称和路径就可以了,
在BCB中的project的option里面只能指定路径,一定要在主函数里面
#pragma comment(lib,"libtsp.lib")
2.如果dll对主函数中FILE类型的指针进行写操作,在vc中只要将主函数的工程建立成
“ use MFC in a shared DLL”就可以了。
但是在BCB中,由于用的是VC生成的DLL,两个软件的文件系统不大一样。进行写
操作会导致程序死掉。所以了类似的情况,最好在统一的文件体系中声明FILE指针,
并进行读写操作。
3.对除数为0的处理。
在vc里面执行的时候,除数为零,会给结果返回一个1.#nf......
BCB就没有这么好的包容性,直接死在那里不动了。