首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

关于DELPHI调用C++写的DLL有关问题(120分)

2012-03-11 
关于DELPHI调用C++写的DLL问题(120分)还有一贴的地址http://topic.csdn.net/u/20100413/12/c19f5056-c76b-

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

热点排行