我在Turbo C中編寫了一個小程序,我希望獲得或創建該程序的DLL,以便與我的C#應用程序一起使用它。如何使用Turbo C從C程序創建DLL
那麼如何使用Turbo C創建一個C程序的DLL?
我想在一個DLL引用中使用它與C#或VB程序。
如果找到this link,但我無法理解它。
我在Turbo C中編寫了一個小程序,我希望獲得或創建該程序的DLL,以便與我的C#應用程序一起使用它。如何使用Turbo C從C程序創建DLL
那麼如何使用Turbo C創建一個C程序的DLL?
我想在一個DLL引用中使用它與C#或VB程序。
如果找到this link,但我無法理解它。
不要使用Turbo C並使用Visual C++進行編譯,因爲我們必須使用Win32調用約定。假設math.h是你的圖書館。
#include <math.h>
extern "C"
{
__declspec(dllexport) double __stdcall MyPow(double, double);
}
extern double __stdcall MyPow(double x, double y)
{
return pow(x, y);
}
然後使用DllImport
將它導入到C#應用程序中。
class Program
{
[DllImport("MyLibrary.dll")]
extern static double MyPow(double x, double y);
static void Main(string[] args)
{
Console.WriteLine(MyPow(2.0, 5.0));
Console.ReadKey();
}
}
這使得您的代碼非常不受管理。更好的方法是創建一個託管C++包裝器。爲此,創建一個新的Visual C++動態庫項目,在下啓用項目屬性>配置屬性> C/C++>常規並禁用C++ Exceptions
項目屬性>配置屬性> C/C++>代碼生成。建立發佈目標。
extern "C"
{
#include <math.h>
}
namespace Wrapper
{
public __gc class MyClass
{
public:
static double MyPow(double x, double y)
{
return pow(x, y);
}
};
};
然後創建一個新的Visual C#項目,引用我們剛纔提出的.DLL文件,並在項目屬性>構建,如果你在你原來的庫使用指針檢查Allow unsafe code
和需要修改它們你的C#應用程序。
class Program
{
static void Main(string[] args)
{
Console.WriteLine(Wrapper.MyClass.MyPow(2.0, 5.0));
Console.ReadKey();
}
}
Turbo C(1989年的最後一版)是一個基於DOS的程序。它不能創建Win32 DLL。
由於您已經在使用Visual Studio for C#,因此我強烈建議使用Visual C++作爲DLL。 Visual C++是自我解釋的(提示:Win32 DLL是你想要的項目類型)。
抱歉兄弟得到運行時錯誤,, !! 無法加載DLL'MyLibrary.dll':無法找到指定的模塊。 (異常從HRESULT:0x8007007E) 我試過第一個 - 構建成功在dll的發佈目標和我的應用程序無法加載DLL .. !! ?? HElp PLZ .. !! – pvaju896 2010-07-28 15:25:13
對不起兄弟!! 我試了win32項目和C#應用程序運行釋放目標..! 它工作thanx .. !! – pvaju896 2010-07-28 15:28:52
>是X bro .. !!兩者都很好.. >我在尋找的是第二種類型。 > secound類型真的很好。 – pvaju896 2010-07-28 17:32:22