C#如何調(diào)用MFC 窗口 DLL
C#調(diào)用MFC 窗口 DLL
MFC DLL
創(chuàng)建一個(gè)窗口類,加public和AFX_EXT_CLASS

MFC DLL屬性

注意
- MFC的使用:在共享DLL中使用MFC
- 公共語(yǔ)言運(yùn)行時(shí)支持:公共語(yǔ)言運(yùn)行時(shí)支持(/clr)

在預(yù)處理器中添加_AFXEXT
在項(xiàng)目名稱.cpp里添加要輸出的函數(shù)

注意第一行AFX_MANAGE_STATE(AfxGetStaticModuleState())不可少
C# Application
添加引用:

然后將MfcDll.dll和MfcDll.lib放在C# Application里的Debug下
Form1.cs添加:
using System.Runtime.InteropServices;
進(jìn)行如下調(diào)用:

若是報(bào)錯(cuò)PInvoke簽名不對(duì),CallingConvention=CallingConvention.StdCal改成CallingConvention = CallingConvention.Cdecl
C# 調(diào)用 C++ MFC DLL
C++ MFC DLL 的封裝
創(chuàng)建 MFC DLL 項(xiàng)目
選擇 DLL type 為 Regular DLL using shared MFC DLL
設(shè)置項(xiàng)目屬性的 Character Set 為 Use Multi-Byte Character Set,若不設(shè)置,接收的字符串只有一個(gè)字符
方法需要被導(dǎo)出,否則導(dǎo)出名稱會(huì)被自動(dòng)命名,具體如下
extern "C" __declspec(dllexport) BOOL AddSignature(char* csFileFullName)
{
? ? AfxMessageBox(csFileFullName);
? ? return true;
}C# 中調(diào)用,CharSet須設(shè)置為多字節(jié)的 Ansi
[DllImport("CppDllTest.dll", EntryPoint = "AddSignature", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
private static extern bool AddSignature(string path);
?
public static bool MyAddSignature(string strMy)
{
? ? return AddSignature(strMy);
}以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
c# Bitmap轉(zhuǎn)bitmapImage高效方法
本文主要介紹了c# Bitmap轉(zhuǎn)bitmapImage高效方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
C#統(tǒng)計(jì)字符串里中文漢字個(gè)數(shù)的方法
這篇文章主要介紹了C#統(tǒng)計(jì)字符串里中文漢字個(gè)數(shù)的方法,本文通過(guò)正則實(shí)現(xiàn)統(tǒng)計(jì)出一段字符串里中文字?jǐn)?shù),需要的朋友可以參考下2014-08-08
C#實(shí)現(xiàn)簡(jiǎn)單成績(jī)管理系統(tǒng)的完整步驟
這篇文章主要給大家介紹了關(guān)于C#實(shí)現(xiàn)簡(jiǎn)單成績(jī)管理系統(tǒng)的完整步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
WPF使用DrawingContext實(shí)現(xiàn)簡(jiǎn)單繪圖
這篇文章主要為大家詳細(xì)介紹了WPF如何使用DrawingContext實(shí)現(xiàn)簡(jiǎn)單繪圖,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以了解下2024-02-02
C#校驗(yàn)時(shí)間格式的場(chǎng)景分析
本文通過(guò)場(chǎng)景分析給大家講解C#里如何簡(jiǎn)單的校驗(yàn)時(shí)間格式,本次的場(chǎng)景屬于比較常見(jiàn)的收單API,對(duì)第三方的訂單進(jìn)行簽名驗(yàn)證,然后持久化到數(shù)據(jù)庫(kù),需要的朋友跟隨小編一起看看吧2022-08-08

