我要在delphi中调用VC一个名为test的dll,该dll由一个带指针参数的函数组成,我先不执行什么操作,只是弹出一个对话框,可是当我在delphi中调用时,先谈出对话框,表示我调用成功了,然后delphi竟然报错,信息为“无效的指针操作”,大家帮忙看一下吧。
test.h文件为
#define SBook int
extern "C" _declspec(dllexport) bool GetResult(SBook *pBook,int x);test.cpp文件为
#include "stdafx.h"
#include "test.h"extern "C" _declspec(dllexport) bool GetResult(SBook *pBook,int x)
{
MessageBox(NULL,"GetResult函数被调用","提示",MB_OK);
return TRUE;
}
delphi中是这样调用的:typeTGetResult=function(pt:Pointer;x:Integer):boolean; stdcall;
var
  Handle:THandle;
  GetResult:TGetResult;
  pt:Pointer;
  flag:integer;
begin
      pt:=@flag;
      Handle:=LoadLibrary('test.dll'); //将"test.dll"的文件映象映射进调用进程的地址空间
      if Handle<>0 then
      begin
         @GetResult:=GetProcAddress(Handle,'GetResult'); //取得DLL中函数GetResult( )的地址
           if @GetResult<>nil then
           begin
           GetResult(pt,5);
           freemem(pt);
           end
           else
           ShowMessage('调用函数"GetProcAddress"时出错!');
           FreeLibrary(Handle);
       end;end;