私はまだこのトピックに関する良い参考文献を見つけていません。この例では、C#に移植しようとしているC++コードをいくつか取り上げます。
C ++ランドには、外部ライブラリ関数の次のプロトタイプがあります。
extern "C" DWORD EXPORT FILES_GetMemoryMapping(
PSTR pPathFile,
PWORD Size,
PSTR MapName,
PWORD PacketSize,
PMAPPING pMapping,
PBYTE PagesPerSector);
そしてその中でそのように使用されます:
FILES_GetMemoryMapping((LPSTR)(LPCTSTR)MapFile, &Size, (LPSTR)MapName, &PacketSize, pMapping, &PagePerSector);
今、私は最初の行をC#に移植しようとしていますが、ここに明確なパスが表示されません。
これは私がこれまでに得たものです:
[DllImport("Files.DLL")]
public static extern uint FILES_GetMemoryMapping(
[MarshalAs(UnmanagedType.LPStr)]
string pPathFile,
out ushort Size,
[MarshalAs(UnmanagedType.LPStr)]
string MapName,
out ushort PacketSize,
IntPtr pMapping,
out byte PagesPerSector);
ここでの質問は次のとおりです。「PSTRpPathFile」は「[MarshalAs(UnmanagedType.LPStr)] stringpPathFile」である必要があることを教えてくれる良いガイドはありますか...それが正しいと仮定しますか?
または、「PMAPPING」構造体へのポインタが「outIntPtr pMapping」になるということは...それが正しいと仮定しますか?
この一人の人に何か助けはありますか?