type
TABC
=
packed
record
m_puser:
LPVOID;
cSaa:
BYTE;
end;
TPABC
=
@TABC;
function
myinid(hWnd:HWND;
cSaa:BYTE):TPABC;
这样就OK了
我假设你的DLL_API定义为
__declspec(dllexport)
function
回头一想 这样简单点
我这边使用lazarus的 公司不让装盗版 没法装delphi 不知道一样不一样
function GetPacket(pPacket:PTtagPackage):integer;cdecl;external Smdll;
function GetString(pStr:PChar):integer;cdecl;external Smdll;
procedure TForm1.Button1Click(Sender: TObject);
var
TagPkg : TtagPackage;
StrInfo : Array[0..4] of Char;
begin
GetPacket(@TagPkg);
GetString(@StrInfo[0]);
ShowMessage(TagPkg.strvarname);
ShowMessage(StrInfo);
end;
另外
DLL_API int GetPacket(pTP p)
{
strcpy(p->strVarName,"aaa");
p->nInt = 123;
p->f = 3.45f;
p->dw = 0xffff;
return 0;
}