unmanaged-memory

    2熱度

    2回答

    就這麼簡單,我怎麼能在VBNET轉換一個UnmanagedMemoryStream到字節數組: Dim bytes() As Byte = My.Resources.AudioFile 例外: Value of type 'System.IO.UnmanagedMemoryStream' cannot be converted to '1-dimensional array of Byte'.

    0熱度

    1回答

    如何通過從C#庫C++的對象。 我可以調用的返回void或int沒有任何問題的功能。 現在考慮在C#下面的函數, List<CSharpClass> CSharpFunction(string Input) 在我的C#類包含, public class CSharpClass { string mystring = string.Empty; byte[] bytearr

    2熱度

    1回答

    我已將原始問題簡化爲此測試。 使用這個類: public class Unmanaged : IDisposable { private IntPtr unmanagedResource; public Unmanaged() { this.unmanagedResource = Marshal.AllocHGlobal(10 * 1024 * 102

    2熱度

    1回答

    繼續我的F#性能測試。對於一些更多的背景看這裏: f# NativePtr.stackalloc in Struct Constructor F# NativePtr.stackalloc Unexpected Stack Overflow 在F#的工作現在,我已經得到了堆陣列。但是,由於某些原因,等效的C#大約快50倍。我已經在下面包含了ILSpy反編譯版本,看起來只有一行是真的不同(在stac

    0熱度

    1回答

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

    0熱度

    1回答

    我的API調用工作,advapi32.dll爲以自動化,可以使用保存的憑證部分Windows應用程序,它做工精細管理Windows保存的憑據。 我試圖更新我的代碼,以便在整個過程中使用密碼SecureString,因爲我無需在任何時候與包含在密碼中的文本進行交互,所以如果我的應用程序永遠不會以純文本保存密碼。 我能夠調集一個SecureString的,以COM任務分配器記憶傳遞給API調用帶有:

    2熱度

    1回答

    有沒有一種方法來編組結構(可能存儲在TypedReference)非託管內存沒有實際裝箱呢?結構的類型在運行時是未知的,所以我不能使用StructureToPtr(.NET 4.5.1)的通用重載。我可以得到一個MethodInfo的StructureToPtr重載,但似乎沒有辦法調用它通過通用引用或TypedReference。 編輯:通用StructureToPtr仍然結構的結構,所以試圖調用

    0熱度

    1回答

    我目前有一些C++代碼處理'char *** myArray'比任何其他字符串比較方法更快。 我還將我的C++封裝到DLL中,並從使用'DataTable'的C#GUI中調用函數。 我很好奇我是如何將'DataTable'數據傳遞給'char *** myArray'的。 Interface.cs: DataTable table cppFunctions.cpp: int CheckColu

    0熱度

    1回答

    我試圖調用非託管函數。我從C++被稱之爲: 這是我 // ConsoleApplication5.cpp : main project file. #include "stdafx.h" #include <windows.h> #include <stdio.h> #include <string> using namespace System; typedef int(*Fu

    0熱度

    1回答

    我使用本地C++ DLL在C#中,像這樣: C++函數: poly* f1(/*some input data*/); double* f2(poly* p); 在C#中,我做的: (這樣做是使用不安全的固定塊適當,所以不要擔心) void* ptr = f1(/*input data*/); double[] result = f2(ptr); 現在,如果我從打印數據,我得到一些數據