我有一個問題,我試着去看幾乎所有的海報解決方案,但找不到合適的解決方案。DllImport,Char *&和StringBuilder C/C#
這個問題很簡單,希望從託管C#中的非託管C代碼返回字符串。 C函數是:
extern "C" __declspec(dllexport) int process_batch (char *&result);
,並在C#我進口DLL:
[DllImport("mydll.dll")]
public static extern IntPtr process_batch(StringBuilder result);
我跑,但在我的StringBuilder的返回值是無感7-8字符串! (我認爲內存地址)
我試着在StringBuilder之前添加ref,這次我在StringBuilder中得到了正確的返回值,但是我得到了AccessViolationException: 試圖讀取或寫入受保護的內存。這通常表明其他內存已損壞。
所以我需要你的幫助來解決這個問題。
還有一件事,我用c中的malloc來分配內存給char *變量。
感謝,
非常感謝。我用它,它的工作。 – Amin 2011-05-19 20:55:36