これは、CライブラリへのC#ラッパーを作成する最初の試みです。SDKはサードパーティであり、私の管理外です。
sdk_defines.h
#ifndef SDK_CHAR_T
#define SDK_CHAR_T
typedef char sdk_char_t;
#endif /* SDK_CHAR_T */
#ifndef SDK_CSTR_T
#define SDK_CSTR_T
typedef const sdk_char_t* sdk_cstr_t;
#endif /* SDK_CSTR_T */
sdk.h
sdk_cstr_t SDK_API
sdk_get_version(void);
私のC#ラッパー:
[DllImport("sdk.dll", CharSet = CharSet.Ansi)]
private static extern string sdk_get_version();
sdk_get_versionを呼び出すと、例外なくクラッシュが発生します。リターンタイプだと思いますが、C#で適切にマーシャリングするにはどうすればよいですか?