Я работаю над проектом, который был написан (HID inteface для STM32) человеком, который раньше работал на Visual C++ 2008. Поэтому, чтобы подражать строке, вызывающей проблему, я создал образец winform приложение в VC++ 2008. Вот событие click с этой одной строкой, дающее ошибку сборки только при построении для x64, но сборка win32 не дает никакой ошибки построения и работает нормально.pin_ptr и interior_ptr in vC++
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
}
};
и ошибка сборки, которая появляется только для 64 билда:
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
Спасибо, сэр. Я ответил на мой вопрос. Вы поняли это правильно, я установил набор символов в unicode. Он был установлен в No Character Set. Также многобайтовый набор символов дал такое же сообщение об ошибке. Но Unicode исправил это. Еще раз спасибо. – Vikyboss