バイト配列 (Word 文書のテキストを含む) を LPTSTR (wchar_t *) オブジェクトに変換する際に問題が発生しているようです。コードが実行されるたびに、大量の不要な Unicode 文字が返されます。
どこかで適切な呼び出しを行っていないか、変数を適切に使用していないためだと思いますが、これにアプローチする方法がよくわかりません。うまくいけば、ここの誰かが私を正しい方向に導くことができます.
最初に、C# コードを呼び出して Microsoft Word を開き、ドキュメント内のテキストをバイト配列に変換します。
byte document __gc[];
document = word->ConvertToArray(filename);
ドキュメントの内容は次のとおりです。
{84, 101, 115, 116, 32, 68, 111, 99, 117, 109, 101, 110, 116, 13, 10}
最終的には次の文字列になります: "Test Document"。
次のステップは、メモリを割り当てて、バイト配列を LPTSTR 変数に格納することです。
byte __pin * value;
value = &document[0];
LPTSTR image;
image = (LPTSTR)malloc( document->Length + 1 );
メモリの割り当てを開始する行を実行すると、イメージ変数が不要な Unicode 文字でいっぱいになります。
췍췍췍췍췍췍췍췍﷽﷽����˿於潁
そして、memcpy を実行してすべてのデータを転送します
memcpy(image,value,document->Length);
これにより、不要な Unicode 文字がさらに表示されます。
敔瑳䐠捯浵湥൴촊﷽﷽����˿於潁
私たちが抱えている問題は、バイト配列に値を格納する方法、またはおそらくバイト配列から LPTSTR 変数にデータをコピーするときに関連していると思います。私が間違っていることを説明したり、正しい方向に向けるために何か助けていただければ幸いです。