【问题标题】:Cannot send info from dll to exe with WM_COPYDATA无法使用 WM_COPYDATA 将信息从 dll 发送到 exe
【发布时间】:2011-12-16 14:12:29
【问题描述】:

我正在尝试将record 从一个 dll 发送到一个 exe。

dll 是我编写的 Outlook 插件,exe 是我的主要应用程序。

我使用this example 成功地将record 从 exe 发送到 exe,但是当我尝试从 dll 到 exe 执行相同操作时,它不起作用。

注意:请打开链接,在那里您可以找到我正在使用的代码。该代码适用于 EXE 发件人应用程序和 EXE 发件人应用程序。这行得通。

如果我将发件人代码放入 dll 中,示例将不再有效。

您能提出一个解决方案吗?

【问题讨论】:

  • 一条记录,我更新了问题。
  • 您需要显示发送WM_COPYDATA 的代码和接收它的代码。您还需要解释“它不起作用”是什么意思。
  • -1。 “不起作用”是什么意思?
  • 贴出不起作用的代码。记录声明没有帮助。
  • 我会从一个简单的字符串开始。如果你不能发送“Hello, world!”,那么任何关于记录的讨论都是无关紧要的。

标签: delphi dll outlook-addin delphi-xe wm-copydata


【解决方案1】:

假设您可以使其与字符串一起使用(还有待观察),您可以简单地将记录序列化为字符串(CSV,可能使用像 ~ 这样的奇怪分隔符),作为字符串发送(PAnsiChar 或 PWideChar ),然后反序列化回到另一端的记录中。这并不像您想要的那样优雅,但绝对,肯定会奏效。

【讨论】:

  • 记录也很简单,string[n]。只需使用SizeOf() 就可以了。
  • 感谢您的回复,但我的问题是没有发送数据,这就是为什么它不能从 dll 工作而从 exe 工作的原因。
猜你喜欢
  • 1970-01-01
  • 2021-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-05
  • 2012-09-06
  • 2012-03-21
  • 1970-01-01
相关资源
最近更新 更多