我应该使用什么样的DLL(或.lib或类)

时间:2009-08-27 22:02:44

标签: c++ events dll callback

所以我是.net和c ++的新手,我需要一个可以调用的函数“库”,以及在使用该库的主应用程序中引发的事件

我有一个C ++库(.lib),我希望在它上面添加另一个层(包装器),并且只为主应用程序公开一些函数和事件。我不知道使用哪种应用技术:C#,VB.net或CLR Winform(不知道这是否是正确的名称)。

我想做什么?我应该在Google上搜索什么?

我想我应该想制作一个DLL(但是那种?我见过C,C ++和.net C ++)

我是否公开了C ++类?但是我如何筹集活动?虚拟功能我认为对吗?

我是否创建了应用程序引用的某种对象具有事件/函数?

正如你所看到的,我是这项技术的新手,也是这方面的新手。

谢谢

2 个答案:

答案 0 :(得分:1)

因为你已经编写了一个c / c ++ DLL,现在想编写一个使用它的GUI,这里有我的建议:

  1. 在.net框架中编写GUI,即:托管c ++,c#或VB.net(我个人更喜欢c#)。
  2. 要将DLL功能转移到.net应用程序,您有以下几种选择:使用P/Invoke或使用托管c ++包装器。
  3. 在项目#2上,我的个人建议(假设您的DLL具有多个函数)是编写托管c ++ DLL。这是一个相当基本但很好的tutorial,它本质上归结为将DLL编译为托管代码,并编写一个包装类/ es以允许其他.net应用程序访问非托管函数/类。

答案 1 :(得分:0)

哇哇:)

  

.. CLR Winform ..

你的意思是C ++ / CLI?

嗯..这完全取决于你不想使用哪种语言包装。 .dll可以是许多不同的东西,实现方面,但它们都有一些共同点:它们获得了可以从其他应用程序使用的数据。这些数据是方法,类,公共整数,等等:)

如果要在C ++中使用外观,请在C ++中编写.dll。如果你想在.Net中使用它,可以用你想要的任何.Net语言,使用P / Invoke或者使用C ++ / CLI来编写它 - 但要注意在进行跨语言操作时存在的数百个陷阱。 .Net使用垃圾收集器,C ++没有(默认情况下:)你可以使用像Boost指针或类似的东西来获得“GC感觉”。)。您没有提到您计划使用的IDE或您要定位的O / S.例如,Windows中的.dll与Linux中的.dll不同。

底线:这取决于您的目标语言,操作系统以及编写外观的简便性,IDE:)

祝你好运。

Visual studio:C++ dll.Net dllnative C++ to .Net wrapper using C++/CLI