小编zed*_*zed的帖子

GlobalFree-不兼容的类型:“ NativeUInt”和“ PWideChar”

WinHttpGetIEProxyConfigForCurrentUser的文档说:

如果它们不是非NULL,则调用者必须释放WINHTTP_CURRENT_USER_IE_PROXY_CONFIG结构中的lpszProxy,lpszProxyBypass和lpszAutoConfigUrl字符串。使用GlobalFree释放字符串。

我编写了以下代码(Delphi 10.3.2):

var
  VConfig: TWinHttpCurrentUserIEProxyConfig;
begin
  FillChar(VConfig, SizeOf(VConfig), 0);

  if not WinHttpGetIEProxyConfigForCurrentUser(VConfig) then begin
    RaiseLastOSError;
  end;
  ...

  if VConfig.lpszAutoConfigUrl <> nil then begin
    GlobalFree(VConfig.lpszAutoConfigUrl);        // <-- Error
  end;
Run Code Online (Sandbox Code Playgroud)

并得到一个错误:

[dcc32错误] E2010不兼容的类型:“ NativeUInt”和“ PWideChar”

问题:

  • 我应该类型转换PWideCharNativeUInt

  • 我可以使用GlobafFreePtr代替GlobafFree(它可以接受PWideChar并在我的测试中正常工作)吗?

delphi winapi

6
推荐指数
1
解决办法
138
查看次数

标签 统计

delphi ×1

winapi ×1