日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

在一个解决方案中用C#测试调用C++ DLL

發布時間:2025/4/14 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在一个解决方案中用C#测试调用C++ DLL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

VS2015,在解決方案中新建一個C++ DLL項目,一個C# Winform項目;

dllmain.cpp;

#include "stdafx.h"BOOL APIENTRY DllMain( HMODULE hModule,DWORD ul_reason_for_call,LPVOID lpReserved) {switch (ul_reason_for_call){case DLL_PROCESS_ATTACH:case DLL_THREAD_ATTACH:case DLL_THREAD_DETACH:case DLL_PROCESS_DETACH:break;}return TRUE; }

這個是自動生成;case DLL_xxxx_xxxx,這幾個是DLL消息;

stdafx頭文件和C文件不用管;

DllTest2.cpp里面添加3個函數;

#include "stdafx.h" #include "DllTest2.h" #include <string.h>DllTest2_API int __stdcall Add(int a, int b) {return a + b; }DllTest2_API int __stdcall Multitwo(int a, int b) {return a * b; }DllTest2_API char __stdcall getc1(char c1) {return c1; }

DllTest2.h里面為三個函數添加導出說明;說明此dll導出的3個函數;

#define DllTest2_API __declspec(dllexport) EXTERN_C DllTest2_API int __stdcall Add(int a, int b);EXTERN_C DllTest2_API int __stdcall Multitwo(int a, int b);EXTERN_C DllTest2_API char __stdcall getc1(char c1);

?

C#項目進行調用測試;

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices;namespace test2 {public partial class Form1 : Form{[DllImport(@"G:\xxxx\VCWorkspace\DllTest2\Debug\DllTest2.dll")]extern static int Add(int a, int b);[DllImport(@"G:\xxxx\VCWorkspace\DllTest2\Debug\DllTest2.dll")]extern static int Multitwo(int a, int b);[DllImport(@"G:\xxxx\VCWorkspace\DllTest2\Debug\DllTest2.dll")]extern static char getc1(char c1);public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){int c = Add(100, 67);textBox1.Text = textBox1.Text + c.ToString() + Environment.NewLine;textBox1.Text += Environment.NewLine;}private void button2_Click(object sender, EventArgs e){int c = Multitwo(99, 7);textBox1.Text = textBox1.Text + c.ToString() + Environment.NewLine;textBox1.Text += Environment.NewLine;}private void button3_Click(object sender, EventArgs e) //char 測試{char c1 = 'f';char d1 = getc1(c1);textBox1.Text = textBox1.Text + d1 + Environment.NewLine;textBox1.Text += Environment.NewLine;}} }

生成解決方案;此處C#調用寫的是DLL生成的絕對路徑;C#不用引用DLL項目;每次修改了dll代碼,重新生成解決方案;

啟動C#項目;可以測試調用C++ DLL了;

總結

以上是生活随笔為你收集整理的在一个解决方案中用C#测试调用C++ DLL的全部內容,希望文章能夠幫你解決所遇到的問題。

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