关于BCB的一些备忘

1 篇文章 0 订阅

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值