【问题标题】:Function written in Delphi2010 COM object not visible in C# .net用 Delphi2010 COM 对象编写的函数在 C# .net 中不可见
【发布时间】:2011-03-26 08:24:34
【问题描述】:

我在 Delphi 2010 COM 对象中编写了一个函数。此函数将使用 PChar 返回字符串。我尝试在 C# .net 中使用 COM 对象。所以,我在我的 C# 中添加了对 COM DLL 的引用。网络应用程序。

我发现该功能在参考资源管理器列表中不可见,而我之前编写的其他功能可用。

我无法弄清楚这个奇怪问题的原因。我再次注销并注册了 COM 对象,但问题仍然相同?

我们之前在使用 String 类型时遇到了一些问题。所以,我们尝试了 pchar。

Delphi 2010 中的示例代码

function TILCalculation.TestString(out Rslt: PChar): WordBool;变量 sRes:字符串; begin sRes := '这是我的测试数据!!!'; StrPCopy(Rslt,sRes);结束;

我在 C# .net 中尝试了以下选择 WindowsFormApplication 下的选定引用 选择添加引用并选择 COM 选项卡 选择 COM 对象。

我注意到我的 COM 对象在对象浏览器中可见。所以,我扩展了对象并检查了。唉!!!此函数在 C# .net 参考中不可见。之前创建的所有函数都是可见的

任何帮助将不胜感激

Tks in adv 文

【问题讨论】:

  • 欢迎来到 Stack Overflow。请考虑包含一个最小代码示例,该示例显示 Delphi 类的声明和您用于导入它的 C# 代码。 (您可以编辑您的问题以添加该信息。)如果没有代码,您就是在赌某人直接经历过您的问题并知道答案。使用代码,即使他们没有亲身经历过,也可以从那些认识到你做错了什么的人那里受益。

标签: .net delphi com delphi-2010


【解决方案1】:

PChar 不是 COM 中的普通类型。您是否尝试过使用 WideString 代替?

PS:请参阅 Rob 的建议以包含一些代码示例以获得更好的答案。

【讨论】:

  • 对于任何 Delphi 版本,它都需要是 WideString。 WideStrings 是 COM 字符串,与 Delphi 的 string 类型不同。尝试将 Delphi string 传递给外部代码是个坏主意。
  • 感谢您的建议。我尝试通过 Widestring 并且问题现在解决了。
猜你喜欢
  • 2015-07-25
  • 1970-01-01
  • 1970-01-01
  • 2018-03-08
  • 2010-11-24
  • 2017-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多