2010-08-10 88 views
2

在我的新項目中,我想使用現有的C++函數。爲此,我需要將C/C++ dll添加到C#項目。如何將C/C++ dll導入到.NET應用程序

我的C/C++項目的類型是UnManaged,它不是COM項目。我從MSDN後看到幾篇文章,並試圖:

[DllImport("user32.dll", EntryPoint="MessageBoxA")] 

但我不知道我應該在哪裏放置user32.dllmy.dll。我是否需要將我的dll放入GAC或其他物理文件夾中。

如果這將是一個物理文件夾,那麼,我不需要使用相對或絕對路徑?

另外閱讀一些關於使用InterOp移植C++ dll的文章,但不太清楚如何開始。

回答

3

請不要把你自己的dll放在C:\ Windows \ system32下。如果你打算使用Windows的一部分,比如user32.dll,你不會把它放在任何地方,它已經存在,並且會在運行時找到,因爲C:\ Windows \ system32在路徑上。如果你打算使用你自己的DLL,把它放在bin或bin \ Debug或任何文件夾中,就在你的exe旁邊。這很容易通過將它添加到項目中來完成,因此在構建時它將複製到輸出目錄中,但是您可以擁有MSI或其他任何內容。如果它被多個應用程序使用,您必須決定是否希望它們全部在更新時開始使用新的應用程序,或者對其現有的副本感到滿意。這可能是一個複雜的問題,你有足夠的時間去爲一個應用程序工作,對嗎?

至於入口點,它是DLL內部函數的名稱。如果您在託管代碼中使用相同的名稱,則可以省略。它使您可以將可能會發現複雜的DLL函數名稱映射到您在託管代碼中使用的更簡單的名稱。

2

您可以將它放在您的應用程序bin文件夾中。

+0

入口點如何? – Simsons 2010-08-10 13:20:13

相關問題