2011-04-23 162 views
0

我需要你們的幫助,讓我在這裏解釋的情況: 我已經寫在VC++ 6.0 AC源代碼,我需要的代碼在我編碼一個C#應用程序中使用,我做了幾件事情要做到這一點,我已經跑在釋放模式C源文件並生成intermediate.manifest文件和其他文件在那裏,我可以使用這些文件來使我的問題解決了。否則,請指導我應該儘快做什麼?C源代碼DLL

拉胡爾·夏爾馬

+0

這是成千上萬的答案對SO。只要看看相關部分。 http://stackoverflow.com/questions/4941736/using-c-dll-in-c – 2011-04-23 20:39:01

+0

事實上,你在這裏發佈了一個問題告訴我們,你會希望我們的幫助,不需要再說一遍' ;-)' – 2011-04-23 20:41:42

+0

我真的需要幫助,如果你能指導一下,會有很大的幫助 – 2011-04-23 20:44:20

回答

3

你想要做什麼是進口的dll這樣的:

[DllImport("user32.dll")]//This is where you identify your dll... 
    public static extern int MessageBoxA( //This would be an object from your dll 
     int h, string m, string c, int type); 

    public static int Main() 
    { 
     return MessageBoxA(0, "Hello World!", "My Message Box", 0); 
    } 

,你需要搜索,以瞭解這一點的關鍵詞是「運行非託管代碼 「和」PInvoke「。

+0

是啊我想調用這樣的DLL,但我怎麼能將C源文件轉換爲DLL? – 2011-04-23 20:44:01

+0

因此,SO可能不合適。請在網上搜索如何在VS中創建一個C DLL。 – 2011-04-23 20:46:57

0

另一種方法是包裹C代碼在託管C++。微軟稱之爲C++/CLI。無論如何,你然後從這個包裝器編譯一個'程序集'。程序集只是一個包含託管代碼的DLL。然後,您可以從一個完全託管的C#應用​​程序中'引用'(管理的等效鏈接)'wrapper'。 所以依賴看起來是這樣的:

Ç - >託管C++ - > C#

0

如果您在C足夠舒適包裹起來的C代碼++,你可以很容易地通過下面的一個dll this微軟指南。它詳細介紹瞭如何在C++中創建一個dll。如果你需要更深入的解釋,儘管隨時可以回到我身邊,我會試着敲一個快速的方法。

也讓我知道,如果你使用一個不同的IDE或環境,我可以泰勒的答案,以滿足您的需求更精確。

可能今天晚些時候但正如我在目前時間緊迫。