1. 程式人生 > >C#呼叫 標準dll 與非標準dll 如vb dll 方法

C#呼叫 標準dll 與非標準dll 如vb dll 方法

首先呼叫dll要通過命令註冊:regsvr32 F:/CJZFProject/CJZFMain/bin/Debug/PayDll.DLL

如果呼叫標準DLL程式碼如下:

宣告: 

[DllImport("PayDll.dll", CharSet = CharSet.Auto)]
 static extern int OpenComm(int a, int b);

呼叫:

int c=10;int d=20;

int num=OpenComm(c,d);

如果是vb編寫的dll,那麼,即為非標準的dll,不能動態呼叫,可以通過:

System.Type oType_C = System.Type.GetTypeFromProgID("PayDll.ClsLogin");
object o_C = System.Activator.CreateInstance(oType_C);
//給o_C物件的vZth屬性賦值
oType_C.InvokeMember("vZth", System.Reflection.BindingFlags.SetProperty, null, o_C, new object[] {"001"});
//執行方法
object result=oType_C.InvokeMember("Login", System.Reflection.BindingFlags.InvokeMethod, null, o_C, new object[] { "sa","","000" });
//得到返回值
resultStr=result.ToString();
//得到執行方法後o_C的屬性vName的值
object vName=oType_C.InvokeMember("vZth", System.Reflection.BindingFlags.GetProperty, null, o_C, null);