日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C++与C#混合编程

發布時間:2024/4/17 C# 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++与C#混合编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原文鏈接:https://www.cnblogs.com/GIScore/p/5872565.html

C++和C#混合編程

最近需要利用C++和C#混合編程,然后就寫了一個C#調用C++生成的DLL的DEMO。困擾我好久的就是C#中string類型在C++里面怎么表達,現在把C++生成DLL供C#調用的流程寫出來。

源碼:百度網盤

1、打開VS創建C++項目"C++_CScharp_DLL"

點擊確定之后接著點擊下一步:

然后選擇應用程序和附加選項:

點擊完成,C++的項目就新建好了。

2、添加代碼文件

右鍵項目,添加類,如下圖所示:

添加類之后會打開添加文件對話框,點擊添加即可,如下圖所示:

點擊確定之后進去下一個對話框,填寫文件名Function,如下圖所示:

添加好后會生成h文件和cpp文件,如下圖所示:

Function.h文件代碼如下:

#pragma once #include <string> public ref class Function { public:Function(void);~Function(void);int menber;int menberFuncAdd(int a,int b);System::String^ say(System::String^ str); };

Function.cpp文件代碼如下:

#include "Function.h"Function::Function(void) { }Function::~Function(void) { }int Function::menberFuncAdd(int a,int b) {return a+b; } System::String^ Function::say(System::String^ str) {return str; }

填寫完后Function.h文件會報錯,錯誤類型如下:

這里需要在C++項目里面設置,讓動態庫受到公共語言運行時的支持。如下圖所示:

打開項目屬性

修改完成后點擊項目右鍵生成DLL,看是否報錯,成功結果如下圖:

3、添加測試程序:

在該解決方案中添加測試程序:

添加一個C#控制臺測試程序:

添加完后設為啟動項:

添加引用:

將C++項目添加到C#的項目中:

4、編寫測試代碼

Program.cs文件代碼如下:

using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace Test {class Program{static void Main(string[] args){Function fun = new Function();Console.WriteLine(fun.menberFuncAdd(1, 2));Console.WriteLine(fun.say("Hello World"));Console.ReadKey();}} }

現在就可以點擊調試按鈕調試了,調試結果如圖所示:

?

轉載于:https://www.cnblogs.com/wunianyaya/p/9158045.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的C++与C#混合编程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。