p/invoke を介して文字列を配信する必要があります。これは単なるファイル名で、「desc.xml」のようなものです。std::string
それが何か他のものであるかどうかは気にしませんchar*
(適切なタイプに変換できます)。署名はどのように宣言すればよいですか?
C#側では、次のようなことを期待しています:
[DllImport("Native.dll"), SuppressUnmanagedCodeSecurity]
public static extern void Initialize(/*TODO: how to pass string?*/);
C ++側では、次のようなものを期待しています:
__declspec(dllexport) void Initialize(char* fileName);
またはstd::string
代わりにchar*
__declspec(dllexport) void Initialize(std::string& fileName);
私はそれがそのように使用されることを期待しています:
Initialize("desc.xml");
問題は、どのように正確にパラメーターを宣言する必要があるかです。