標籤:
過程比C#調用VC++dll簡單。
一、建立DLL
建立工程,類型選擇類庫,產生的結果就是dll
注意:在項目屬性-應用程式中,注意三個地方,程式集名稱和預設命名空間可以調整,但要一致,別的程式調用此DLL時,可通過using命名空間,而後類名+函數名調用。輸出類型保持預設的“類庫”不變。
此DLL中可以應用VC建立的DLL,但此時本DLL屬性只能是X86.調用vc++dll方法還是用
[DllImport("space.dll")]
public static extern void CalcCording(double jin, double wei, double ang, double r, out double ojin, out double owei);
dll中可以進行執行、刪除檔案等操作。
此外dll中要獲得本dll本地路徑就不能用Application.ExecutablePath()函數了額,而要用自訂的
private static string GetAssemblyPath()
{
string _CodeBase = System.Reflection.Assembly.GetExecutingAssembly().CodeBase;
_CodeBase = _CodeBase.Substring(8, _CodeBase.Length - 8); // 8是 file:// 的長度
string[] arrSection = _CodeBase.Split(new char[] { ‘/‘ });
string _FolderPath = "";
for (int i = 0; i < arrSection.Length - 1; i++)
_FolderPath += arrSection[i] + "/";
_FolderPath = _FolderPath.Replace("/", "\\");
return _FolderPath;
}
二、C#調用C#dll
1、可在dll項目同一解決方案下添加WindowsForm項目,並設為啟動項目
2、以添加引用的方式將上面建立的dll引入本項目
3、直接用dll的類名+函數名的方法調用dll中的函數(需要using命名空間),不用[DllImport("...")]的方法引用了。
4、參數傳遞更加自由,可用數組或List<>類型傳遞參數。
2015.5.9 C#編寫DLL及C#調用C#DLL