在乙個解決方案中用C 測試呼叫C DLL

2021-10-02 09:10:40 字數 1694 閱讀 4511

vs2015,在解決方案中新建乙個c++ dll專案,乙個c# winform專案;

}這個是自動生成;case dll_***x_***x,這幾個是dll訊息;

stdafx標頭檔案和c檔案不用管;

dlltest2.cpp裡面新增3個函式;

#include "stdafx.h"

#include "dlltest2.h"

#include dlltest2_api int __stdcall add(int a, int b)

dlltest2_api int __stdcall multitwo(int a, int b)

dlltest2_api char __stdcall getc1(char 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

private void button1_click(object sender, eventargs e)

private void button2_click(object sender, eventargs e)

private void button3_click(object sender, eventargs e) //char 測試}}

生成解決方案;此處c#呼叫寫的是dll生成的絕對路徑;c#不用引用dll專案;每次修改了dll**,重新生成解決方案;

啟動c#專案;可以測試呼叫c++ dll了;

確保只有乙個程式例項執行 C 之解決方案

確保只有乙個程式例項執行 c 之解決方案 2008 04 15 16 24 如何確保在c 中只有乙個程式 例項 執行?解答 主要應用system.diagnostics名字空間中的process類來實現,思路,我們在執行程式前,查詢程序中是否有同名的程序,同時執行位置也相同程,如是沒有執行該程式,如...

C 程式只允許執行乙個例項的解決方案

最近在做winform的程式中,需要只能開啟乙個程式,如果已經存在,則啟用該程式的視窗,並顯示在最前端。在網上google了一哈,找到了很多的解決方案。這裡我整理了3種方案,並經過了測試,現和朋友們分享 一 使用用互斥量 system.threading.mutex 同步基元,它只向乙個執行緒授予對...

C 程式只允許執行乙個例項的解決方案

最近在做winform的程式中,需要只能開啟乙個程式,如果已經存在,則啟用該程式的視窗,並顯示在最前端。在網上google了一哈,找到了很多的解決方案。這裡我整理了3種方案,並經過了測試,現和朋友們分享 一 使用用互斥量 system.threading.mutex 同步基元,它只向乙個執行緒授予對...