您的位置:首页 > 其它

关于BCB的一些备忘

2014-05-14 10:44 393 查看
1.提示错误:[ILINK32 Error] Fatal: Unable to open file
'XXX.OBJ';错误信息是因为编译器找不到该文件,要确认工程是否存在这个目录project->options(或者快捷键ALT+CTRL+F11)看是否存在目录,如果不存在就手动添加,如果还是提示错误,试试在intermediate output添加个obj文件夹,即添加.\obj,然后clean,clean target工程

[ Linker error]unresolved external 'XXX' referenced from 'XXX.OBJ'在头文件声明,但是源文件未实现的函数也会出现这种错误。

2.提示错误:unable to open include file "XXX.h";首先看工程是否包含该头文件所在的目录,不存在则添加目录,或者直接将头文件拷贝到工程所在目录,也可以将头文件拷贝到BCB安装目录下的Include文件夹中

3.使用AnsiString 需要包括dstring.h

4.do not include this file directly.Include 'system.hpp'  在源文件添加#include "system.hpp"

5.编写了一个窗口保存源文件为padclient.cpp,保存工程文件为padclient.bpr,关机后打开工程文件,报错[C++ Fatal error] padclient.cpp(1): F1009 Unable to open input file 'E:\work\working\padclient.cpp',原因是工程文件生成的时候也会创建一个cpp文件,如果工程名与原文件名同名,则会覆盖,所以找不到输入文件

6.不能使用VC++生成的lib,而必须使用BCB的命令行工具implib生成的.lib文件。而且由于BCB和VC++成立函数名转换的做法不同。所以在VC中最好是输出函数为C函数的DLL,如果输出函数是C++类,则可能无法调用。

7.C++ Builder6.0
编写和调用DLL 的过程和步骤


1).打开BCB 6.0 ,新建==》DLL wizard 

2).写您的接口函数,函数声明格式:

返回值类型 _declspec(dllexport) _stdcall 函数名(。。。) 



....



如果不是DLL外面调用的函数,你可以用普通的声明方式; 

3).检查设定: 

(1)Option--》Linker--》Generat import library 勾上(这个选项很重要,有了它,工程才能生成 *.lib 文件)。 

(2)Option-->Advanced complier-->Calling conventon -->std call(这是你的DLL中函数被调用的形式,最好选为标准调用)。 

4).Builder整个的工程。 

5).检查是否生成了*.dll和*.lib文件,缺一不可啊。然后保存你的整个工程。 

6).使用时: 

首先明确,我们这个工程,最重要就是得到两个文件: 

*.lib==>其他工程只有将*.lib 包含进入工程后才能使用你的DLL, 

*.dll==>里面还有您的函数 

  (1)将DLL的Lib文件,添加进你的工程文件; 

(2)为你的DLL写一个头文件,对dll中的接口函数进行声明,格式如2中所示 

(3)将DLL放在你需要调用DLL的*.exe文件同一目录下。 

关于调用dll是一些注意事项可参考http://wenku.baidu.com/link?url=Mbv-Zu5O-DEmh-g2S6y1nYx7GQ971hKFqBsXG6pph8WzTUNT5imh5uiv3YK2JCvS0Ln7GY37PiedB7Xnfb9QsOrTruww0HNZ9qrh6_LS6-O

8.路径名要写成D:\\Program Files\\Borland\\CBuilder6\\Projects\\sqlitetest\\LanePadClient.dll

或者D:/Program Files/Borland/CBuilder6/Projects/sqlitetest/LanePadClient.dll
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  BCB Error