Visual C++ 2008で以前に作業した人が作成したプロジェクト(STM32のHIDインターフェイス)に取り組んでいます。問題の原因となっている行を模倣するために、サンプルのwinformを作成しましたVC++ 2008のアプリケーションです。この1行のクリックイベントは、x64用にビルドエラーが発生した場合にのみ表示されますが、win32ビルドではビルドエラーが発生せず正常に動作します。vC++のpin_ptrとinterior_ptr
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
String^ devPath = this->textBox1->Text;
MessageBox::Show(devPath);
pin_ptr<const TCHAR> pPath = PtrToStringChars(devPath); *error line
}
};
のみのx64ビルドで表示されるビルドエラーは次のとおりです。
Error 1 error C2440: 'initializing' : cannot convert from 'cli::interior_ptr<Type>' to 'cli::pin_ptr<Type>'
感謝。
実際には、最初のパラメータとしてCreateFileに渡す必要はありません。そして、それが働いた32ビットのために、問題は64ビットでしか起こらない。早速のお返事ありがとうございます。 – Vikyboss
PtrToStringCharsは常にconst wchar_tを返します。あなたの64ビットビルドはUnicodeにコンパイルされていませんか? – Joe
ありがとうございます。私は私の質問に答えました。あなたはそれが正しいと思う、私はユニコードに文字セットを設定します。 No Character Setに設定されました。また、マルチバイト文字セットでも同じエラーメッセージが表示されました。しかし、Unicodeはそれを修正しました。再度、感謝します。 – Vikyboss