可以将Windows .exe GUI应用程序转换为DLL,然后运行GUI吗?

时间:2013-07-05 18:11:00

标签: c# windows visual-studio-2010 visual-c++ dll

如何将Visual-C ++ GUI项目从app转换为DLL,然后让C#app调用DLL并运行GUI?

当我尝试时,“dlg.DoModal();”导致“Debug Assertion Failed!”。

我有一个Visual Studio 2010 C ++项目,其Config Props设置为: “配置类型是app(.exe) 在共享DLL中使用MFC 不使用ATL“

当我将其更改为DLL时,选择Common Lang Run Support(/ clr),我可以从我的C#解决方案中成功调用其各自的函数。

我试过在调用的DLL中调用一个测试函数 “theApp.InitInstance();” 但是这会生成“Debug Assertion Failed!”。

2 个答案:

答案 0 :(得分:0)

看起来你试图用一个交换机(/ clr)将Win32应用程序转换为.NET,这不起作用(它可以工作,但在非常简单的情况下,而不是你的)。

您仍然可以将EXE转换为Win32非托管DLL(这需要在.def文件和主代码中编写一些额外的行),然后使用P / Invoke来调用该函数。

答案 1 :(得分:0)

创建一个空的MFC DLL项目,并将Exe中的所有基本代码复制到其中。只是在Visual Studio设置中更改项目类型将无法正确更改从头开始创建DLL应用程序时向导生成的所有其他代码。