首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

opengl做的exe,怎样由c#主程序操作?解决办法

2012-03-01 
opengl做的exe,怎样由c#主程序操作??opengl做的exe,他自己不会单独使用,要由c#主程序启动,并且启动后还需

opengl做的exe,怎样由c#主程序操作??
opengl做的exe,他自己不会单独使用,要由c#主程序启动,并且启动后还需要随时接收c#主程序传递的内存数据,有什么办法实现?

我原来做的方法是:用process.Start()启动,用共享内存方法传递内存数据。
可是头儿说用共享内存不方便,一是不太安全,而是接口作的不好。

我想能不能把opengl程序添加到c#主程序中(添加新项目)?这样在一个解决方案中是不是可以直接传递内存数据?(我是菜鸟,如有很错误的说法请不要见笑哈。)我倒是把opengl程序添加进去了,可是接下来怎么办就不知道了,尝试着在c#主程序中添加引用opengl的exe文件,根本执行不了。

[解决办法]
在C#中使用API函数发送消息给OpenGL程序试试,比如WM_COPYDATA消息或者其它什么自定义消息。
或者用C++\CLI把OpenGL程序封装成一个类库,在C#中调用。
[解决办法]
没有办法,只能用另一个进程来启动这个exe
[解决办法]

探讨
opengl的exe是在vs2005上做的mfc应用程序,有办法改成dll让C#程序调用吗?

[解决办法]
要这样,新建一个MFC DLL项目,静态动态都可以,然后在里面建立对话框,把工作都放在那个对话框里面。所以并不是说直接改原来的项目,而是写一个新项目,当然原来项目里面的很多东西都可以复制粘贴到新项目就是了。

C#里面使用DLL的导出函数那个,要特别注意数据类型的转换,其它没什么,可以参考这个:http://www.cnblogs.com/xdotnet/archive/2007/08/10/csharp_cpp_dll_pinvoke.html

如果经常需要C#和C++协作的话,可以在有空的时候学一下C++\CLI,就是VC新建项目的时候选择“CLR”的那些。C++\CLI是微软官方推荐的C#/C++协作方法,非常不错。
[解决办法]
探讨
更正一下,我原来的所谓接口只是一个供c#端调用的函数集合类,确实不太好

热点排行