关于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是个指针
需要分配内存吧