調用DLL函數的步驟是:
1、創建DLL;
2、在需要引用DLL的地方進行函數聲明,例如:
using System;
using System.Runtime.InteropServices; //DllImport所在的命名空間
class DllImportTest
{
[DllImport("hashMain.dll")]
public static extern void hashMain();
[DllImport("hashMain.dll")]
private static extern void setMainUrl(string urlSeed);
[DllImport("hashMain.dll")]
public static extern bool checkWebInside(string url);
}
這裏在DllImportTest類中聲明瞭三個方法,第二個方法聲明爲私有的。這些方法就可以像在DllImportTest類中創建的方法一樣使用了,只是它的方法體是在DLL中實現的。extern關鍵字聲明該方法是個外部方法。
3、調用函數,例如:
namespace TestApplication
{
class Program
{
static void Main(string[] args)
{
bool result = DllImportTest.checkWebInside("http://www.baidu.com");
}
}
}
由於外部調用的方法必須聲明爲static的,因此只能通過類進行引用。在方法的使用上,跟一般的類得靜態方法沒有什麼區別。
4、需要注意的問題:被調用的DLL必須放在Program所在的項目集的Debug文件夾下,而不是放在DllImportTest所在項目集的Debug文件夾下。因爲在系統只會在運行exe文件的那個目錄下尋找DLL,而運行的exe文件是在運行的那個項目集的Debug目錄下。也可以將DLL放在windows/system32目錄下,或者加入到系統環境變量的path下。