0

私は、Visual C++ 2008 で以前働いていた人によって書かれたプロジェクト (STM32 の HID インターフェイス) に取り組んでいます。そのため、問題を引き起こしている行を模倣するために、VC++ 2008 でサンプルの winform アプリケーションを作成しました。この 1 行のクリック イベントでは、x64 用にビルドされた場合にのみビルド エラーが発生しますが、win32 ビルドではビルド エラーは発生せず、正常に動作します。

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>'

ありがとう。

4

2 に答える 2

1
  1. Right Click on the project
  2. Properties
  3. Configuration Properties
  4. General
  5. Character-Set "Use Unicode Character Set"

This fixed the problem.

于 2012-01-16T22:05:53.417 に答える
0

「より良い」解決策はおそらく次のとおりです。

pin_ptr<const WCHAR> pPath = PtrToStringChars(devPath);

CreateFileWUnicode 文字列があるため、を使用します。

そうすれば、プロジェクト ファイルの Unicode 構成に関係なく、コードが機能します。

于 2012-01-16T22:10:10.920 に答える