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的程序为:

C/C++ code
//————————————————————————— #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.
不然能编译不能运行

引用 19 楼 springworker 的回复:
可以,可以生成.hpp
看来是我的程序有问题
我的test.pas是我截取的我原来的一个.pas文件的一部分,是不是与这个有关

当然有关
1.unit test 必须后的test必须与文件名一致
2.在interface中必须含函数声明,如果你用到系统函数或其它VCL函数,必须用uses将它所在的unit包含进来
如:你用ShowMessage函数必须uses Dialogs
终于明白你的问题,你的pas没能编译通过,当然不能生成.hpp

回头再看了一下你的错:

引用 6 楼 springworker 的回复:
是不是在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)

1.你没有uses Dialogs,就会报:
Undeclared identifier: 'showmessage'
2.showmessage("数据开始有非法字符!");
delphi的字中用不能",要用',要改成
showmessage('数据开始有非法字符!');

学无止境哪““

非常感谢keiy,虽然我的还没做出,但你给我的例子我做,,这贴现在结。以后还大有可能向您请教