xbns.net
当前位置:首页 >> 各位高手,请问如何将C# 的DLL文件封装成C++格式的DLL文件供C++代码调用呢! >>

各位高手,请问如何将C# 的DLL文件封装成C++格式的DLL文件供C++代码调用呢!

如果是简单的c++,比如函数参数类型没有复杂的结构的,那就编译成普通的dll,然后用c#的dllimport(就像c#里用windows api一样).如果是复杂的c++库,那还是建一个c++/cli工程作为桥梁,封装c++的函数和类到托管c的函数和类.

Reduce @2Multiplication @3Sqrt @4Pow @5这些是某dll导出的函数名称以及他们的"编号" C#调用一般的dll还真是不简单,一言难尽,你用PInvoke搜一下吧,需要耐心慢慢领会.

创建新的动态链接库项目MyDLL 打开MyDLL.h文件往其中添加以下代码: namespace Test { class MyMathClass { public: _declspec(dllexport) float Add(float,float);//加法 }; } 函数实现添加到MyDLL.cpp文件 #include "stdafx.h" #include "

不推荐用C++类实际上是因为对于C#来说C++是unsafe的.如果你的代码需要大量使用C++类,C++/CLI是最佳选择.原来的C++代码可以不动,所有要用到的类套一层代理类就可以了.既是类型安全的,性能也接近native.写成C函数再用PInvoke不要太ugly,很容易玩脱.那种写法是给C用的.

控制台调用窗体不是这么用的.第一个窗体要用Application::Run打开[STAThreadAttribute]int main(array<System::String ^> ^args){ Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); Application::Run(gcnew ClassDlg()); return 0;}

一:打开腾讯电脑管家,找到工具箱-电脑诊所.二:点击软件问题专区.三:在丢失dll文件一键修复区,找要修复的dll文件选项.四:点击立即修复,便可以恢复正常了

可以试一下,在项目里,添加引用,然后找到那个dll.然后在查看那里,打开对象浏览器.应该可以看到dll里面的东西.

1.如果你没有导出类,而是一些api的导出,直接用[DllImport]就可以了 2.如果你是导出类,那么就要用managed c++在中间作一层,让c#去调用这个类

public static extern bool Gnd_shuzu(String filename,float[] aa);改成这样

这个说起来就多了,api将一系列核心功能封装起来,为外部提供调用接口,使用工厂模式或者facade模式是两种比较常见的接口提供方法,对于api内部的组织与实现由自己来进行控制,不过提供的接口应该有实用性和良好的扩展性.集成开发环境vs可以创建c#类库,写好类库后可以生成独立的dll文件.具体还需要多看多总结,没事可以看看微软提供的核心类库的类声明和组织方法,可以学到很多东西.

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.xbns.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com