c 呼叫C語言封裝的dll檔案中的資料型別問題

2025-07-12 06:05:34 字數 2984 閱讀 1021

c#程式設計使用c語言編寫的dll檔案,資料型別問題

1樓:匿名使用者

編譯c#的時候,選擇向com+公開介面就可以了。但是執行的時候,必須有。netframework的支援。

請教c語言高手關於c語言呼叫c#封裝的dll檔案

2樓:匿名使用者

建議你放棄這個想法吧 純c下呼叫com 沒見過這麼用的能不用com的地方儘量不要用,效率很一般。

1,要麼用cpp重寫com的功能,寫成標準dll,然後c中呼叫2,要麼你別在c中呼叫了,用cpp呼叫c#的com

3樓:sxzy灬丨小柒

夠嗆啊,如果是c封裝的,c#去呼叫還靠譜一些。

c#呼叫c語言編寫的dll會不會產生什麼問題?

4樓:網友

首先,c#是可以呼叫c寫的dll的,引用時vs會自動將這個dll轉換為託管程式。

但是你這個dll是去呼叫別的c庫就會出問題,因為別的庫依然是非託管的。

5樓:網友

c#完全可以呼叫,你只需要注意點就是[dllimport("aio_")]的每次使用和釋放。

c#呼叫c語言**件

6樓:網友

在labview中有兩種型別的dll:常規dll 和 .net dll。這兩種庫都可以被c#呼叫,但呼叫方式不同:

1)呼叫常規dll

dllimport("", entrypoint="messageboxa")]

static extern int msgbox(int hwnd, string msg, string caption, int type);

2)呼叫。net dll

通過專案的「新增引用」將labview提供的。net dll 引入你專案中。

c語言的動態庫在c#中如何宣告及呼叫

7樓:處搖胼手胝足

1、將dll檔案複製到編譯路徑目錄(系統目錄或專案目錄等等);

2、匯出dll的功能介面;如:[dllimport("wdt_")]

internal static extern int initdio();

這個dll在c中的標頭檔案是這樣表達的:bool initdio(void);

bool 在c中是int型別的,對應的c#也是int 型別,呼叫dll通常都是靜態的外部引進的(static extern),internal 是可見屬性定義(自己根據需要定義);

3、參考dll對應的標頭檔案的資訊。如果c/c++封裝的dll是打算通用的,通常釋出標頭檔案,標頭檔案在c中是編譯器所需的檔案,dll的關鍵資訊都在標頭檔案展示出來。我們可以通過閱讀標頭檔案的包含資訊(如結構體、巨集定義,函式原型、功能註釋等),使用c#方式來匯出dll的函式介面來呼叫dll(如上2、)。

4、在需要的地方加上引數呼叫匯出的函式介面。

怎麼在c#中新增用c語言開發的動態鏈結庫dll檔案(vs2010)?

8樓:網友

總體來說,有兩種呼叫動態連線庫的方。

法(事實上,是有兩種從managed code呼叫unmanaged code的方法)

一種使用attribute,即。

dllimport("")]

static extern int somefunctionindll(string filename, uint pageno);

需引用名稱空間。

using ;

另一種方法是採用com方法,現倒入com元件的型別庫,(menu:project/add reference)

然後直接去new物件,呼叫其方法既可。

需要先註冊。

我用的大多都是c++的dll,c的木有試過,估計原理也是這樣子希望對你有幫助,o(∩_o~

9樓:網友

你的dll必須是com元件才能通過這種方式新增引用,如果不是就不行。

但是,如果不是com元件,有另外一種方式使用dll,就是import裡面的函式,需要做個包裝類,在裡面把dll中的方法包裝一下,具體的可以網上搜搜c# import dll用法。

c#中怎樣引用c編寫的dll

10樓:超人影視娛樂

c#中引用c編寫dl**l:

#include ""

#include ""

#ifdef _managed

#pragma managed(push, off)#endif

bool apientry dllmain( hmodule hmodule,dword ul_reason_for_call,lpvoid lpreserved

return true;

void helloworld()

#ifdef _managed

#pragma managed(pop)

#endif

編譯成功!接下來我們便可以新增乙個c#控制檯專案了c#測試**如下:

using system;

using ;

using ;

using ;

namespace testdll}}

11樓:網友

新增相應的dll引用,在vs裡面選擇「專案」-「新增引用」-「瀏覽」,就可以新增你想用的dll了,之後在程式裡面即可使用。

12樓:茂林修豬

只要生成過啦dll,直接在解決方案中點右鍵 新增引用。

選擇你需要的dll ok:

13樓:可可小車迷

直接可以新增後就可以引用的。「專案」-「新增引用」-「瀏覽」

14樓:網友

工具箱右鍵---選擇項---瀏覽。

c怎樣呼叫類,c 中怎樣執行呼叫的dll檔案

加個 class1 class program class1 這個是在你 上加的,沒有向樓上的那樣,改了你的 program class1 其實都一樣的,哥們我還是勸你上課認真聽吧,我就後悔上課沒認真聽的,後來被學校送去培訓了半年的.net,現在才找到入門的感覺,哎 大學的生活好好珍惜吧,等工作了就...

C呼叫C寫的dll,建構函式出問題

i不應該是這樣嗎?data dwr new data abc efg public data string dbname,string tname 加個public c 呼叫dll的問題。這個問題困擾我很久了!我寫了個一個測試,你看看的 首先是a.dll,我用的是def匯出,你也可以用declspe...

c語言檔案操作,C語言檔案操作

c語言標準庫提供了一系列檔案i o函式用於檔案操作,比如fopen 用於開啟檔案 fread fwrite 用於讀寫檔案 fseek 用於設定操作位置等等,一般c語言教程上都有檔案i o一章,細緻內容,可以找本教科書學習一下。下面是一個示例 實現了,將一個磁碟檔案中的資訊複製到另一個磁碟檔案中。in...