0

我通常不在 .NET 框架中编程,但是我需要使用它来创建一个简单的 exe 应用程序,该应用程序记录来自某些测量设备的数据。我希望这个应用程序有一个带有几个方法的自动化接口。我在使用 Delphi/Pascal 之前已经这样做了,它非常简单,我可以在 Visual Studio 中创建一个类库,它可以注册自身和方法,并且可以轻松地与之交互,但是将 ComClass 添加到 windows 窗体应用程序不会工作,谁能指出我正确的方向?

4

1 回答 1

0

这开始是一个评论,但一直在增长,希望我不会偏离轨道......

你只能注册一个dll。所以简短的回答是在你的项目中添加一个类库并将 com 类放在那里。这将允许您共享该类的功能,但不能共享该类的同一个实例

我认为您的问题是您正在尝试建立Interprocess Communications。我的直接建议是不要这样做,至少一开始是这样。

首先,您可以让您的 com 应用程序界面带有一个记录数据的 .net 类库。然后,您可以拥有另一个项目,其中包含显示日志并定期更新的 .net 可执行文件。现在,您在栅栏的两边都有 .net 代码,可以开始研究让它们相互通信的方法。

困难的部分是调用方法和返回值。如果您确实需要一个响应式系统,您可以研究命名管道进程间通信,或者使用 WCF 服务在两个系统之间进行回调。问题是,在任何一种情况下,您都会受到不由 .net 托管的类库的束缚,因此您的功能有限(没有配置文件等)。如果您可以忍受时间延迟,我建议您从将消息写入本地数据存储开始,然后每 30 秒左右从每个客户端轮询一次。例如,该应用程序会创建一条消息说“给我测量 A”,然后开始每秒轮询一次。DLL 将有一个计时器,并在 30 秒内读取该消息并使用测量值写入它自己的消息,EXE 将读取然后显示该消息。

于 2013-07-31T18:09:56.153 回答