Tag: unmanaged

如何传递可以从本机写入c#的空字符串缓冲区?

我正在尝试从托管代码中获取一个字符串到我的非托管代码中: unmanaged dll: typedef int (__stdcall * GetNameFromDictionaryCallback)(ULONGLONG id, WCHAR * name); declspec(dllexport) void __stdcall UnmanagedSetNameLookupCallback(GetNameFromDictionaryCallback fn) { GetNameFromDictionaryCallback GetNameFromDictionary = fn; WCHAR * value = new WCHAR[256]; ULONGLONG key = 0x250000000DA44785; GetNameFromDictionary(key, value); // reverse P/Invoke call to C# function wprintf_s(“%ls”, value); // just to display the result for simplicity delete value; } 托管dll: […]