读书人

关于DELPHI调用C++写的DLL有关问题(1

发布时间: 2012-03-11 18:15:38 作者: rapoo

关于DELPHI调用C++写的DLL问题(120分)
还有一贴的地址
http://topic.csdn.net/u/20100413/12/c19f5056-c76b-4989-8c5d-ae0fec253455.html?98698
由于没有什么人能解决,就合并到此贴一起给分

问题如下:
在C++写的DLL中有如下一函数说明

BOOL WINAPI NLS_GetVersion(LPUOSVERSIONINFO lpVersionInformation);
说明
获得掌上机系统的版本信息。
返回值
如查成功,返回TRUE,否则返加FALSE。
参数表
参数类型及说明
LpVersionInformationLPUOSVERSIONINFO结构指针。

typedef struct _UOSVERSIONINFO{
DWORD dwMajorVersion;主版本号
DWORD dwMinorVersion;次版本号
DWORD dwBuildNumber;编译版本号
} UOSVERSIONINFO, *LPUOSVERSIONINFO;


下面我贴上我的代码

type
LPUOSVERSIONINFO=^T_UOSVERSIONINFO;
T_UOSVERSIONINFO = packed record
dwMajorVersion : DWORD;
dwMinorVersion : DWORD;
dwBuildNumber : DWORD;
end;

function NLS_GetVersion(lpVersionInformation:LPUOSVERSIONINFO):Boolean;stdcall;external 'Rapi.dll';

procedure TForm1.FormCreate(Sender: TObject);
var
verson:LPUOSVERSIONINFO;
begin
NLS_GetVersion(verson);执行到此句就会出错(大概是叫什么暴力访问什么地址之类的)。是不是我的调用方法有什么问题
Memo1.Text:=IntToStr(verson^.dwMajorVersion);
end;

[解决办法]
LPUOSVERSIONINFO是个指针
需要分配内存吧

读书人网 >.NET

热点推荐