2013-04-25 53 views
0

我從客戶端收到了非託管DLL文件。此DLL文件具有返回XML流的重要方法。我不知道如何'抓住'這個XML流,因爲DLL文件幾乎沒有記錄。這是我知道的:如何從C#中的非託管DLL文件中檢索XML文件流

  1. 我知道如何調用非託管DLL函數,但是我不熟悉結構以及如何使用結構從函數中檢索數據。
  2. 的「文檔」說:

    [DllImport("UnmanagedDllFile.DLL")] 
    public static extern void OpenXmlBridge(); 
    

    我知道,這將返回void時:可以從功能OpenXmlBridge

這是我停留在現在獲得一個XML流手柄被執行,但我在這裏虧本。我也知道這個函數是有效的,因爲當我用一些隨機的東西代替OpenXmlBridge時,我得到錯誤。所以直到現在,我想我一直在正確的軌道上。我一直無法從這裏找到準確的答案。

我的任何人都可以指出我正確的方向,所以我可以從這個函數檢索XML流句柄。任何幫助或提示,不勝感激。

+1

如果你不知道從本地DLL中的函數定義,你可以試試http://www.dependencywalker.com/ – Fox32 2013-05-10 19:10:19

回答

1

您可以使用UnmanagedMemoryStream類。在這種情況下,您的包裝看起來對子級一樣:

[DllImport("UnmanagedDllFile.DLL")] 
public static extern IntPtr OpenXmlBridge(); 

和代碼訪問它會是這樣的: