关于DELPHI调用C++写的DLL有关问题(120分)
关于DELPHI调用C++写的DLL问题(120分)
还有一贴的地址
http://topic.****.net/u/20100413/12/c19f5056-c76b-4989-8c5d-ae0fec253455.html?98698
由于没有什么人能解决,就合并到此贴一起给分
问题如下:
在C++写的DLL中有如下一函数说明
BOOL WINAPI NLS_GetVersion(LPUOSVERSIONINFO lpVersionInformation);
说明
获得掌上机系统的版本信息。
返回值
如查成功,返回TRUE,否则返加FALSE。
参数表
参数 类型及说明
LpVersionInformation LPUOSVERSIONINFO结构指针。
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是个指针
需要分配内存吧
还有一贴的地址
http://topic.****.net/u/20100413/12/c19f5056-c76b-4989-8c5d-ae0fec253455.html?98698
由于没有什么人能解决,就合并到此贴一起给分
问题如下:
在C++写的DLL中有如下一函数说明
BOOL WINAPI NLS_GetVersion(LPUOSVERSIONINFO lpVersionInformation);
说明
获得掌上机系统的版本信息。
返回值
如查成功,返回TRUE,否则返加FALSE。
参数表
参数 类型及说明
LpVersionInformation LPUOSVERSIONINFO结构指针。
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是个指针
需要分配内存吧