C++調(diào)用C#的DLL程序?qū)崿F(xiàn)方法
把C#編譯成DLL或者Axtive控件,再由C調(diào)用!比如使用C++調(diào)用C#的DLL。
SwfDotNet是.net下輸出flash的類庫。SwfDotNet是C#編寫的,作者的C#水平,真是令我佩服。這是個特別好的讀寫Swf文件的庫。但是,我要用在C++項(xiàng)目中,怎么讓C++調(diào)用C#的DLL呢。今天一上午都在琢磨這個問題,耽誤了很多時(shí)間,原因是編譯是出現(xiàn):warning C4819: 該文件包含不能在當(dāng)前代碼頁(936)中表示的字符。請將該文件保存為 Unicode 格式以防止數(shù)據(jù)丟失。
接著就是一大堆的0x01等等。自己做了個Sample,仔細(xì)分析發(fā)現(xiàn)還是自己沒有搞清楚。正確的操作如下:
1 創(chuàng)建C# DLL,需要指定應(yīng)用類型為“類庫”,代碼:
namespace CSLib { public class Class1 { private string name; public string Name { get { return name; } set { name = \"Your Name: \" + value; } } } }
2 C++客戶程序,是個控制臺應(yīng)用,代碼: #using \"..\\debug\\CSLib.dll\"
using namespace CSLib; int _tmain(int argc, _TCHAR* argv[]) { Class1 ^c = gcnew Class1(); c->Name = \"zzj\"; printf(\"%s\\n\", c->Name); return 0; }
3 注意事項(xiàng):
1 使用#using引用C# DLL,而不是#include.我就是想當(dāng)然的使用了后者,所以浪費(fèi)了一上午的時(shí)間;
2 別忘了using namespace CSLib;
3 使用C++/clr語法,采用正確的訪問托管對象,即:使用帽子‘^',而不是星星‘*'。
以上是怎么調(diào)用的總結(jié)和幾點(diǎn)注意事項(xiàng),對于C++調(diào)用C#的DLL程序可能還有其他的方法,歡迎大家進(jìn)行討論。
- C# 調(diào)用C++寫的dll的實(shí)現(xiàn)方法
- C++調(diào)用C#的DLL實(shí)現(xiàn)方法
- C#調(diào)用C++dll方法步驟
- C++與C#互調(diào)dll的實(shí)現(xiàn)步驟
- C#調(diào)用C++DLL傳遞結(jié)構(gòu)體數(shù)組的終極解決方案
- c#調(diào)用c++的DLL的實(shí)現(xiàn)方法
- 基于C#調(diào)用c++Dll結(jié)構(gòu)體數(shù)組指針的問題詳解
- C#程序調(diào)用C++動態(tài)庫(dll文件)遇到的坑及解決
- C#程序如何調(diào)用C++?dll詳細(xì)教程
- C++項(xiàng)目中調(diào)用C#DLL的三種方式
相關(guān)文章
C# 7.0之ref locals and returns(局部變量和引用返回)
這篇文章主要介紹了C# 7.0之ref locals and returns,即局部變量和引用返回,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03C#實(shí)現(xiàn)軟件開機(jī)自啟動功能(不需要管理員權(quán)限)
在本文中,我們探討了如何使用C#語言實(shí)現(xiàn)應(yīng)用程序在系統(tǒng)啟動時(shí)自動運(yùn)行的功能,同時(shí)避免了對管理員權(quán)限的需求,文章通過代碼示例講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2025-04-04WinForm實(shí)現(xiàn)基于BindingSource的方法擴(kuò)展
這篇文章主要介紹了WinForm實(shí)現(xiàn)基于BindingSource的方法擴(kuò)展,需要的朋友可以參考下2014-08-08C#中的ICustomFormatter及IFormatProvider接口用法揭秘
這篇文章主要介紹了C#中的ICustomFormatter及IFormatProvider接口用法揭秘,本文能過分析一段代碼得出一些研究結(jié)果,需要的朋友可以參考下2015-06-06C#設(shè)置WinForm中DataGrid列的方法(列寬/列標(biāo)題等)
這篇文章主要介紹了C#設(shè)置WinForm中DataGrid列的方法,包括列寬、列標(biāo)題等部分,并分析了其中相關(guān)的操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07C#中把任意類型的泛型集合轉(zhuǎn)換成SQLXML數(shù)據(jù)格式的實(shí)例
本文主要分享了C#中把任意類型的泛型集合轉(zhuǎn)換成SQLXML數(shù)據(jù)格式的實(shí)例代碼。具有很好的參考價(jià)值,需要的朋友可以看下2016-12-12