2013-04-02 86 views

回答

1

在C#中,你可以使用反射在運行時動態加載庫:

System.Reflection.Assembly myDllAssembly = 
    System.Reflection.Assembly.LoadFile("%MyDLLPath%\\MyDLL.dll"); 

之後,你就可以搜索類型從組合:該類型的

System.Type MyDLLFormType = myDllAssembly.GetType("MyDLLNamespace.MyDLLForm"); 

並創建對象:

Form MyDLLFormInstance = (Form)myDllAssembly.CreateInstance("MyDLLNamespace.MyDLLForm"); 
1

在java中:加載一個Java本地/動態庫(DLL),see this example :

import com.chilkatsoft.CkZip; 

public class Test { 

    static { 
    try { 
     System.load("C:/chilkatJava/chilkat.dll"); 
    } catch (UnsatisfiedLinkError e) { 
     System.err.println("Native code library failed to load.\n" + e); 
     System.exit(1); 
    } 
    } 

    public static void main(String argv[]) 
    { 
    CkZip zip = new CkZip(); 
    System.out.println(zip.version());  
    } 
} 

在C#:嘗試此鏈接回答:https://stackoverflow.com/a/1087851/1743852

0

在C#中,您不能加載本地的dll,而不是你P /調用它們!

P/Invoke或Pinvoke代表平臺調用服務。 PInvoke 是Microsoft .NET Frameowrk的一項功能,它允許開發人員 調用動態鏈接庫(DLL)中的本機代碼。 當Pinvoking時,.NET框架(或公共語言例程)將加載DLL並自動處理類型轉換。 P/Invoke最常見的用途是使用Win32 API中包含的僅包含 的Windows功能。 Windows中的API非常廣泛,只有一些功能封裝在.NET庫中。