unit OleDB;{$HPPEMIT '#include <transact.h>"}
{$HPPEMIT '#include <oledb.h>"}
参看帮助
Type Parameter
Syntax {$HPPEMIT 'string'}
The HPPEMIT directive adds a specified symbol to the header file generated for C++. Example: {$HPPEMIT 'typedef double Weight' }.
HPPEMIT directives are output into the "user supplied" section at the top of the header file in the order in which they appear in the Delphi file.对照帮助,好像上面的写法不完全符合 Syntax  @_@我关心的是 Delphi怎么链接c++的头文件并且调用其中的函数,有个软件只提供了C API 我一直想弄清楚Delphi如何调用之偶然在oleDB单元看到了上面的编译指示字,不是很懂

解决方案 »

  1.   

    我也刚看了一下帮助 也对delphi怎么链接 解析c++的头文件有点不解
    哈 有点意思不过调用函数 都是一样的 你有了函数的原形 然后根据函数名直接使用就是 这些函数的实现可能都在DLL中,比如API函数等。
      

  2.   

    因为VCL同时还要给C++Builder用~~~在Delphi中还是自己用Pascal重写头文件吧,然后将C代码用C++Builder编译成obj链接进来,当然通常还需要自己写几个C标准库中的函数,如_malloc,_free等等,如果用到的库函数很多,或者是用C++写的,那还是做为动态库输出吧
      

  3.   

    Delphi !!不!! 可以直接应用c++的头文件的
    所有C/C++的头文件都必须被重写成pascal方式。
    对于存在于Dll(如Windows API)的函数,用动态库联接进来(可以打开Windows.PAS看看就知道了)
    对于用自己用C/C++写的程序,可以先用编译为obj文件,然后加入进你的delphi project。
    注意delphi中的inc文件(即头文件)对于用C编写的obj文件的引用必须使用cdecl定义方式:
    function MyFunction(X, Y: Real): Real; cdecl;
    重要的是cdecl。
    delphi传参的方式是寄存器优化的。而c/c++是采用标准的堆栈进行。所以必须加入cdecl说明。关于如何将C/C++改写为delphi的格式请参见:
    http://info.tlw.cn/4210.htm
    http://info.tlw.cn/4211.htm
    http://info.tlw.cn/4212.htm
    http://info.tlw.cn/4213.htm
    http://info.tlw.cn/4214.htm
    http://info.tlw.cn/4215.htm
    http://info.tlw.cn/4216.htm
    http://info.tlw.cn/4217.htm
    http://info.tlw.cn/4218.htm
    http://info.tlw.cn/4219.htm
    http://info.tlw.cn/4220.htm
    http://info.tlw.cn/4221.htm
    http://info.tlw.cn/4222.htm
    http://info.tlw.cn/4223.htm
    http://info.tlw.cn/4224.htm
    http://info.tlw.cn/4225.htm