B
bluesnow
Unregistered / Unconfirmed
GUEST, unregistred user!
vc中的函数声明如下:
Short DllExport
MLAdd_presence
(
short * o_pResult, /* Result of the presence detection */
unsigned char * o_pImage /* Grabbed Image */
);
vc中的调用如下:
short l_nPresResult;
short l_nRep;
unsigned char * m_pImage;
m_pImage = new unsigned char[416 * 416] ;
l_nRep = MLAdd_presence(&l_nPresResult, m_pImage);
请问:在delphi中该如何声明函数,如何定义函数参数类型,如何调用?
我做了如下声明及调用,但是调用之后指针变量l_nPresResult里并没有正确的值,
而且在执行dispose(l_nPresResult);时出现地址错误,请大侠帮忙,万分感谢
另外关于delphi中调用vc++的dll动态库中的函数(函数中含有指针地址的变量),
在delphi中该如何处理?
function MLAdd_presence( o_pResult : T__SmallInt;o_pImage : T__Byte):smallint
stdcall
external 'Add.dll';
var
l_nPresResult : ^SmallInt;
m_pImage : ^Byte;
l_nRep : smallint;
begin
m_pImage := AllocMem(SIZEX * SIZEY) ;
new(l_nPresResult);
try
l_nRep := MLAdd_presence(@l_nPresResult, @m_pImage);
//l_nPresResult^ := 10;
finally
if m_pImage<> nil then FreeMem(m_pImage);
if l_nPresResult <> nil then
dispose(l_nPresResult);
end;
if (l_nPresResult^ = 1) then
begin
......
end;
end;
Short DllExport
MLAdd_presence
(
short * o_pResult, /* Result of the presence detection */
unsigned char * o_pImage /* Grabbed Image */
);
vc中的调用如下:
short l_nPresResult;
short l_nRep;
unsigned char * m_pImage;
m_pImage = new unsigned char[416 * 416] ;
l_nRep = MLAdd_presence(&l_nPresResult, m_pImage);
请问:在delphi中该如何声明函数,如何定义函数参数类型,如何调用?
我做了如下声明及调用,但是调用之后指针变量l_nPresResult里并没有正确的值,
而且在执行dispose(l_nPresResult);时出现地址错误,请大侠帮忙,万分感谢
另外关于delphi中调用vc++的dll动态库中的函数(函数中含有指针地址的变量),
在delphi中该如何处理?
function MLAdd_presence( o_pResult : T__SmallInt;o_pImage : T__Byte):smallint
stdcall
external 'Add.dll';
var
l_nPresResult : ^SmallInt;
m_pImage : ^Byte;
l_nRep : smallint;
begin
m_pImage := AllocMem(SIZEX * SIZEY) ;
new(l_nPresResult);
try
l_nRep := MLAdd_presence(@l_nPresResult, @m_pImage);
//l_nPresResult^ := 10;
finally
if m_pImage<> nil then FreeMem(m_pImage);
if l_nPresResult <> nil then
dispose(l_nPresResult);
end;
if (l_nPresResult^ = 1) then
begin
......
end;
end;