2014-03-30 65 views
0

我有一個VC++的SDK示例,我正在寫代碼在C#中。在VC樣品他們已經使用_stat替代視覺c#

struct _stat StatBuff; 

當我檢查的_stat它是

#define _stat _stat64i32 

他們正在使用StatBuff作爲

unsigned int BuffSize = StatBuff.st_size + 8; 

此代碼旨在創造一種緩衝器,用於定義瀏覽過的圖片文件,下一行是

ImageBuffer = (BYTE *)malloc(BuffSize); 

我想知道如何我可以在C#中轉換(StatBuff.st_size),我在互聯網上搜索了很多,但無法轉換這段代碼。我可以使用一些替代的C#功能。

+1

也許你可以告訴我們代碼的目的是什麼? – nvoigt

+0

#nvoigt我編輯了這個問題 – Tanveer

+0

也許你可以發佈一個更大的塊,因爲在C#中有簡單的圖像加載函數,所以不需要擺弄低級字節計算。 – nvoigt

回答

1

各種_stat函數都是圍繞底層Win32函數的C/C++庫封裝器,旨在使得像Posix一樣的操作系統更容易移植。

使用像+8這樣的偏移量正在假設可能會改變的_stat類型的內部佈局。

所有的信息都可以使用.NET FileInfo類型。

+0

理查德,我很困惑,因爲_stat具有像緩衝區和和路徑的屬性,並最終產生ImageBuffer我必須傳遞給另一個SDK函數。我的問題是,我應該讓我的課程具有相同的屬性,或者可以直接使用FileInfo。 – Tanveer

+0

@Tanveer如果沒有更詳細的代碼知識,這是不可能回答的。 (1)理解代碼的作用,(2)使用.NET等價物重寫。這樣的重寫將不會成爲單語句翻譯的單一語句。 – Richard