如何创建中间库? 我正在寻找一些关于如何在C++和C语言中实现一些东西的信息。 我想知道的是如何处理以下问题: C#应用程序:-有一个窗口 C++库:-在 调用时,它将在 c#应用程序的窗口。(如果 C#应用程序未运行, (什么也不会发生) C++应用程序:动态链接到C++库并调用CealTyButoN() 功能

如何创建中间库? 我正在寻找一些关于如何在C++和C语言中实现一些东西的信息。 我想知道的是如何处理以下问题: C#应用程序:-有一个窗口 C++库:-在 调用时,它将在 c#应用程序的窗口。(如果 C#应用程序未运行, (什么也不会发生) C++应用程序:动态链接到C++库并调用CealTyButoN() 功能,c#,c++,dll,shared,C#,C++,Dll,Shared,我将如何处理这个问题,我很高兴听到你的一些想法。 平台是windows。我的问题是,如何让C++库与C语言应用程序通信来创建新的按钮?它是链接的吗,套接字。。。我特别想到了linux中的GTK+,您可以链接到GTK+库,但是库如何与GNOME交互以创建新窗口等等。我对编写DLL并将其链接到c#应用程序不感兴趣,我感兴趣的是创建中间库。我想不出任何明智的方法来做你想做的事情。我认为您应该做的是创建函数在C#app中绘图,然后公开一些消息传递接口,如套接字,允许外部应用发送消息,命令C#app按照您

我将如何处理这个问题,我很高兴听到你的一些想法。
平台是windows。我的问题是,如何让C++库与C语言应用程序通信来创建新的按钮?它是链接的吗,套接字。。。我特别想到了linux中的GTK+,您可以链接到GTK+库,但是库如何与GNOME交互以创建新窗口等等。我对编写DLL并将其链接到c#应用程序不感兴趣,我感兴趣的是创建中间库。

我想不出任何明智的方法来做你想做的事情。我认为您应该做的是创建函数在C#app中绘图,然后公开一些消息传递接口,如套接字,允许外部应用发送消息,命令C#app按照您的指示执行操作。当C#应用程序接收到消息类型为DRAW#u BUTTON的消息时,它会使用它接收到的消息中指定的任何参数来绘制该按钮

另外,我相信P/UncCK调用是C函数,而不是C++,虽然你可以通过添加C库来调用这个函数,但是C++调用了C++库。

< P>如果你可以在C语言中创建一个小而正确的HWND(不知道小部件),你可以使用C窗口作为C语言来创建C++窗口。
几年前,我们正是针对java/c++进程对这样做的。但是,java应用程序可以通过RPC向C++应用程序报告HWND值,所以安装并不难。

< P>假定您控制C++应用程序的代码,并且控制C++应用程序的代码,并且可能是“库之间”。我发现自己在问“你为什么要这样做?”

<>如果你想让C++应用程序能够在C语言应用程序上添加一个给定的按钮,并按下那个按钮,就可以与C++应用程序通信,那么,我个人就使用标准的IPC,在C++应用程序和C语言应用程序之间有一个通信通道,并且只需通过IPC就可以用C++应用程序来询问C应用程序。要显示按钮,然后让C语言应用程序发送任何细节(很可能按钮被按下的事实)通过相同的IPC通道到C++应用程序。
如果这条路线行不通,那么我认为你需要澄清你目前试图解决的问题。我认为你当前的“解决方案”走错了方向,因此告诉你如何实现当前的“解决方案”的答案将被误导

那么,您的windows窗体(即c#作为一个不同的进程运行)?c#应用程序是否知道会发生这种情况,您是否可以在其中放置代码以提供帮助,或者您是否打算对任意c#应用程序执行此操作?@max:的确,c#应用程序是我自己维护的应用程序@Len:是的,因为我将要创建c#应用程序Hi frankc,我确实在考虑这样做。你建议我在windows中使用消息传递系统吗?事实上,我会通过公开一个C库来实现这一点,没有问题。但这不是我的问题所在,我想为我的C++应用程序创建一个库,它实际上会与我的实例C语言应用程序通信。现在,正如下面frankc所建议的,我认为我应该使用windows消息,因为P/Invoke不是唯一可用的互操作。还有IJW(C++/cliinterop),请看。至于进程间通信,您可以使用命名管道、套接字、COM或共享内存。您好,我的目标如下:我想为程序员提供一个库来使用特殊接口,而不想在我的应用程序中公开ipc(不是出于安全原因,也不是出于其他原因,而是为了给程序员提供一个透明层).在阅读了大量的反馈之后,我认为我的方法将是:创建一个C库,公开一些函数,库本身将对C#应用程序执行IPC。你对IPC方法有什么建议吗?我正在考虑内存映射文件或套接字。谢谢你的回答!所有这些都是以前做过的…为什么不只是通过COM从C#应用程序中公开所需的功能?