相关疑难解决方法(0)

Delphi通过引用或值/副本传递参数

背景1

var text:String;

text:='hello';

myFunc(text);
Run Code Online (Sandbox Code Playgroud)

上下文2

function myFunc(mytext:String);
var textcopy:String;
begin

    textcopy:=mytext;

end;
Run Code Online (Sandbox Code Playgroud)

myFunc从Context1调用Context2,局部变量mytext指向Context2之外的内存?或者在mytext范围内有自己的内存空间,并用相同的内容填充/复制text?我可能遗漏了一些非常基本的东西,因为我收到了一个access violation错误.

有没有办法明确指定一个函数是应该通过引用还是通过值接收参数,然后像C一样复制?我不确定我是怎么做的.

delphi pascal pointers pass-by-reference

10
推荐指数
3
解决办法
3万
查看次数

如何在Delphi中使用"Native Wifi API"Windows API函数

我试图在delphi上使用Windows API中的函数,Windows Wlanapi.dll(Native WIFI API)的函数

WlanOpenHandle

DWORD WINAPI WlanOpenHandle(
  __in        DWORD dwClientVersion,
  __reserved  PVOID pReserved,
  __out       PDWORD pdwNegotiatedVersion,
  __out       PHANDLE phClientHandle
);
Run Code Online (Sandbox Code Playgroud)

WlanHostedNetworkQueryProperty

DWORD WINAPI WlanHostedNetworkQueryProperty(
  __in        HANDLE hClientHandle,
  __in        WLAN_HOSTED_NETWORK_OPCODE OpCode,
  __out       PDWORD pdwDataSize,
  __out       PVOID *ppvData,
  __out       PWLAN_OPCODE_VALUE_TYPE *pWlanOpcodeValueType,
  __reserved  PVOID pvReserved
);
Run Code Online (Sandbox Code Playgroud)

我试图使用这些功能和其他人几个小时,阅读MSDN参考和其他网站,但我不能让这个工作.

我的尝试

type

  TWlanOpenHandle = function(  dwClientVersion:DWORD;
                               pReserved:Pointer;
                               pdwNegotiatedVersion:PDWORD;
                               phClientHandle:PHANDLE
                            ):DWORD; stdcall;

  function apiWlanOpenHandle(  dwClientVersion:DWORD;
                               pReserved:Pointer;
                               pdwNegotiatedVersion:PDWORD;
                               phClientHandle:PHANDLE
                      ):DWORD;


implementation

function apiWlanOpenHandle ( dwClientVersion:DWORD;  pReserved:Pointer; pdwNegotiatedVersion:PDWORD; phClientHandle:PHANDLE ):DWORD;
var
  WlanOpenHandle: TWlanOpenHandle;
  DLL: Cardinal;
begin
  DLL:=LoadLibrary('Wlanapi.dll'); …
Run Code Online (Sandbox Code Playgroud)

delphi dll winapi wlanapi

4
推荐指数
1
解决办法
6462
查看次数

标签 统计

delphi ×2

dll ×1

pascal ×1

pass-by-reference ×1

pointers ×1

winapi ×1

wlanapi ×1