intptr

    6熱度

    4回答

    當您在C#中使用類似int*的指針時,您需要使用unsafe關鍵字,但是當您使用IntPtr時,則不需要。這些有什麼不同?他們都可以指向一個地址。 垃圾回收器如何處理這兩種類型?他們處理的方式不同嗎?如果是這樣,有什麼區別?如果沒有,爲什麼需要關鍵字unsafe? 編輯:非常感謝大家的答案至今,但我想知道的是他們如何通過框架和垃圾收集器,而不是IntPtr MSDN的定義不同的處理。只需要一次Go

    2熱度

    1回答

    我正在使用C#和P-Invoke訪問Qt框架(http://qt.digia.com/)中的對象。我似乎沒有遇到使用函數返回簡單類型(或無效)的麻煩,但每當我嘗試使用返回對象的函數時,應用程序都會崩潰。 例如,在QtXml4.dll中,有一個方法QXmlInputSource :: data(void),它返回一個QString類型的對象。這裏是我的包裝類: public class QXmlIn

    1熱度

    2回答

    如何使用Binary-AND檢查是否爲IntPtr對象設置了特定位?我打電話給GetWindowLongPtr32() API來獲取窗口的窗口樣式。這個函數恰好返回一個IntPtr。我已經在我的程序中定義了所有的標誌常量。現在假設我想檢查是否設置了一個特定的標誌(比如說WS_VISIBLE),我需要二進制 - 它與我的常量,但我的常數是int類型,所以我不能直接做到這一點。嘗試撥打ToInt32(

    0熱度

    1回答

    以前,我詢問this question有關將用戶返回到他們正在使用的上一個窗口,但我找到了解決方案,但它創造了另一個問題。確定前一個窗口的函數有時會起作用(如果某些事件發生,我不能隨意重新創建,但會隨機發生)。在某個時候,它回到2個窗口,有時候回到1個窗口。它這樣做是因爲任務欄先行,然後是窗口。 所以,爲了解決這個問題,我已經確定我應該繼續閱讀前面的窗口,直到我到達一個不是任務欄的窗口,但是,我不

    0熱度

    1回答

    我分配IntPtr指向要用於非託管代碼的結構數組。我發現在這個問題上很多的資源,這裏是我的最後一個方法(似乎運作良好): public IntPtr ArrayToPtr<T>(T[] array) { int size = array.Length; int elemSize = Marshal.SizeOf(typeof(T)); IntPtr result

    7熱度

    3回答

    這是我的代碼: using (Process game = Process.Start(new ProcessStartInfo() { FileName="DatabaseCheck.exe", RedirectStandardOutput = true, CreateNoWindow = true, UseShellExecute = fal

    0熱度

    1回答

    這個問題困擾了我一段時間 - 當試圖向下滾動面板時,欄將不會移動,直到釋放鼠標(在其他控件中似乎沒有問題)。 在本次論壇http://csharpcode25.appspot.com/question/5080f1624f1eba38a4ca86bf用戶已經經歷了同樣的問題,一個可能的解決方案是通過覆蓋WndProc中給出 - 不知道如果事情得到迷失東京從C#到VB,但它只是拋出號碼有誤,參數類型

    0熱度

    1回答

    這是我的問題:如何循環通過C#中的IntPtr指向的東西? 我有C#代碼調用C++代碼。 C++代碼返回一個指向一塊圖像緩衝區的指針。 C#和C之間的接口++是在C#中聲明一個IntPtr變量 因此,這裏是我的C#代碼: private IntPtr _maskData; public void LoadMask(string maskName) { _maskData =

    0熱度

    2回答

    我用TWAIN_32的掃描和twainLib.TransferPictures使用DibToBitmap.FormHDib(hbitmap)擺脫IntPtr一個bitmapsource,但我希望有一個bitmapimage。 我要轉換的IntPtrbitmapsource到bitmapimage,而不是直接使之成爲bitmapsource然後bitmapimage

    5熱度

    2回答

    在託管代碼中分配內存使用: IntPtr [] params_list_n = new IntPtr [5]; 但對於非託管內存我使用Marshal.AllocHGlobal 我不明白怎麼回事,在這種情況下,爲數組分配內存。 理想情況下,我想使用函數調用Marshal.GetNativeVariantForObject (o, params_list_n[i]); 對於數組的每個元素。