首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi 改写 vc 函数 参数传递有关问题

2012-03-03 
delphi 改写 vc 函数 参数传递问题我在网上找个一些跟我相同情况的例子,但都没有下文vc中代码:结构体定义:

delphi 改写 vc 函数 参数传递问题
我在网上找个一些跟我相同情况的例子,但都没有下文

vc   中代码:

结构体定义:

typedef   struct   tagINVOICEDATA   {
char         szFpCode1[16];
charszFpSeriaoNo1[16];
charszFpEnVersion[8];
                  ......
}INVOICEDATA,   *PINVOICEDATA;

需调用函数声明(该函数为dll中的)

int     WINAPI   FpGetNewPage(PINVOICEDATA   lpFpBuffer);

我在delphi   中用记录类型代替为:
    type
        INVOICEDATA   =   record              
            szFpCode1:   array[0..16]       of       char;        
            szFpSeriaoNo1:   array[0..16]       of       char;      
            szFpEnVersion:   array[0..8]       of       char;  
            .........        
        end;
    PINVOICEDATA=^INVOICEDATA   ;

调用dll函数声明为:
    function   FpGetNewPage(lpFpBuffer:PINVOICEDATA   ):integer;stdcall;external   'scanreco.dll ';

我现在调用该delphi   函数为:
var
    FpData:   INVOICEDATA;
begin
    self.Memo1.Lines.Add( '扫描返回代码: '+inttostr(FpGetNewPage(@FpData)));
end;
   
程序虽然没报错,但返回结果根本不对。。
应该怎样改写呢?
由衷感谢您的帮助。

如果实在没办法,要学下vc了,用vc写个ocx来让delphi   调。


[解决办法]
char szFpCode1[16];
szFpCode1: array[0..15] of char;
[解决办法]


C语言中声明数组 char szFpCode1[16];它的下标是从0..15

所以:
szFpCode1: array[0..15] of char;

热点排行