如何将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!”。
答案 0 :(得分:0)
看起来你试图用一个交换机(/ clr)将Win32应用程序转换为.NET,这不起作用(它可以工作,但在非常简单的情况下,而不是你的)。
您仍然可以将EXE转换为Win32非托管DLL(这需要在.def文件和主代码中编写一些额外的行),然后使用P / Invoke来调用该函数。
答案 1 :(得分:0)
创建一个空的MFC DLL项目,并将Exe中的所有基本代码复制到其中。只是在Visual Studio设置中更改项目类型将无法正确更改从头开始创建DLL应用程序时向导生成的所有其他代码。