【问题标题】:Code translate from C/C++ to Delphi代码从 C/C++ 转换为 Delphi
【发布时间】:2013-06-30 01:57:34
【问题描述】:

我有一个小问题。我想将一些 C/C++ 代码翻译成 Delphi。

LPVOID lpMyVar;

*(LPWORD)lpMyVar = 0xF9EB;

我尝试了几种方法,但都无济于事。如果有人可以帮助我,请。提前致谢!

【问题讨论】:

  • 这些变量在 C/C++ 中的实际声明是什么?你没有表现出来。还有LPVOID = lpMyVar;的意义是什么?断章取义,它看起来有点奇怪。
  • 对不起,它是 LPVOID lpMyVar;
  • 你打算在什么上运行它(或者 lpMyVar 接下来会发生什么)?看起来好像不是很便携。
  • 已解决!也谢谢你!
  • 为了有一个更具描述性的标题问题(一个不能应用于数百个其他问题的问题),您能否描述一下代码的哪一部分给出了你麻烦吗?是不是它们之间没有任何标点符号的两个令牌语句?是星号吗?它是括号中的单个标记吗?

标签: c++ delphi translate


【解决方案1】:
type PDWORD = ^DWORD;
var lpMyVar: Pointer;

PDWORD(lpMyVar)^ := $F9EB;

但最好将lpMyVar 声明为类型化指针:

var lpMyVar: ^DWORD;

lpMyVar^ := $F9EB;

【讨论】:

  • 对于较新的版本和 x64 支持,请使用 NativeUInt 而不是 DWORD。
  • @ArnaudBouchez DWORD 在这里不用作指针的类型转换,因此 PDWORD(前导“P”)用于将无类型指针转换为类型指针。这里不需要 NativeUInt,除非访问的数据是 x64 中的 64 位整数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-04
  • 1970-01-01
  • 2013-07-08
  • 2015-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多