C++Builder 程序员博客
30 Aug
C Builder中使用Delphi文件问题中,我还是无法在.pas同目录下找到生成.hpp文件。我就步骤是我把我需要用的text1.pas源文件放到一个文件夹中,打开C++ Builder,打开我的工程选择Projet ⦁dd to Project ,从Add to Project对话框中的文件类型选择PAS文件名选择text.pas,然后点击OK。
别人说会生成对应的.hpp文件(这个文件和你的单元文件在同一目录下面) ,可我没找到,不知道什么原因,是我做的顺序有问题?
是不是编译正确了才生成.hpp.在delphi中没错,怎么一加入后出现很多原来没有的错误
最好把代码/错误贴上来看一下
要确认你的BCB IDE没有装bcc32pch,或在编译的时候bcc32pch需要关闭。
怎么知道我的 IDE是否装bcc32pch
是不是在delphi中showmessage可以全是小写,但其中一个错误是 Undeclared identifier: 'showmessage'。
这句showmessage("数据开始有非法字符!");还有2个错误
[Pascal Error] test1.pas(96): Illegal character in input file: '"' ($22)
[Pascal Error] test1.pas(96): Illegal character in input file: '非' ($B7C7)
看上去你是用c++的编译器去编译pas文件了,不要把pas的代码贴入BCB中.只能加入pas的unit,然后再
#include <pas_unit.hpp>
具体可参考:
hnsyf(鱼片儿)写的:
http://topic.csdn.net/t/20020618/17/813364.html
我加入的就是pas的unit,我选择Projet ⦁dd to Project 加入test1.pas后上面显示还是test.pas不是test.hpp?
研究了很长时间了,一直弄不好,心里很急,很需要兄弟的帮忙
上面只会显示unit的名字test,没有.pas或.hpp
显示.pas,不过我是按照你和我说的也就是你给我的文章中的步骤做的
你的BCB是什么版本?
6.0
你有QQ吗?,你是否可以用QQ上的远程协助给我演示个简单的例子
那就奇怪了,可能是你的bcb本身的问题了
很需要keiy的帮忙,为了这个问题,我愁死了,我现在终于承认自己别正常人笨一些了
写一个简单的test.pas
unit test ;
interface
implementation
function testf:integer;
begin
testf:=100;
end;
end.
然后存盘,在同一目录下,新建一个bcb项目,将test.pas加入,BCB的程序为:
//————————————————————————— #include <vcl.h> #pragma hdrstop #include "Unit1.h" #include "test.hpp" //————————————————————————— #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //————————————————————————— __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //————————————————————————— void __fastcall TForm1::Button1Click(TObject *Sender) { ShowMessage(testf()); } //————-
编译看看结果
用delphi建简单例子的时候
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
这些东西删掉吗?
可以,可以生成.hpp
看来是我的程序有问题
我的test.pas是我截取的我原来的一个.pas文件的一部分,是不是与这个有关
上面我的也有小问题:
unit test ;
interface
function testf:integer; //少了声明
implementation
function testf:integer;
begin
testf:=100;
end;
end.
不然能编译不能运行
回头再看了一下你的错:
1.你没有uses Dialogs,就会报:
Undeclared identifier: 'showmessage'
2.showmessage("数据开始有非法字符!");
delphi的字中用不能",要用',要改成
showmessage('数据开始有非法字符!');
学无止境哪““
非常感谢keiy,虽然我的还没做出,但你给我的例子我做,,这贴现在结。以后还大有可能向您请教