我有桌面应用程序,我需要将其移动到服务器,以便该应用程序的多个实例可以运行。
对于桌面应用程序,我使用 C++ 作为核心应用程序逻辑,并使用 C# 将其与前端集成。Desktop应用程序的架构如下:
1.为了在 C# 和 C++ 之间进行通信,我使用了 P/Invoke。2.C++还需要在不同的时间点将一些消息发送回C#。为此一个。C# 为 C++ 提供函数回调。湾。C ++将其存储在全局变量中
typedef void (__stdcall *Callback) (BSTR str);
Callback Handler;
extern "C"
{
void __declspec(dllexport) __stdcall SetCallback(Callback handler);
}
- C#调用了多个函数,它们都是全局变量。
- 在应用程序内部,我启动了另一个线程,该线程打开套接字以与某些服务器进行通信。
将此应用程序转换为服务器端应用程序的最佳方法是什么?我可以继续使用 P/Invoke 吗?如果我必须将全局变量更改为类变量,我如何创建一个可以使用 P/Invoke 的类?或者我在 C# 中创建 C++ 代码的实例?(如何?)
请指导我这个。
谢谢