0

C ++/CLIを使用してすべてのWIAデバイスを一覧表示しようとしています。私はC++/ CLIにかなり慣れていませんが(私は自分自身を中級のC ++プログラマーだと思っていますが)、次のエラーが発生し続けます。

error C2664: 'WIA::IDeviceInfos::default::get' : cannot convert parameter 1 from 'int' to 'System::Object ^%'

次のコードスニペットを使用する場合:

DeviceManager^ dm = (gcnew WIA::DeviceManager());
for (int i = 1; i <= dm->DeviceInfos->Count; i++)
{
String^ deviceName = dm->DeviceInfos[i].Properties("Name")->get_Value()->ToString();
this->devices->Items->Add(deviceName);
}

そのintオブジェクトとして扱う必要があるのはなぜですか?Managed C ++にはボクシングの概念がありましたが、ここでは機能しません。とにかく、それを取り除くためにC ++ / CLIが導入されたと思いましたか?

4

1 に答える 1

0

Value プロパティを取得するには、明らかでないコードが必要です。これを試して:

WIA::DeviceInfo ^ info = dm->DeviceInfos[gcnew System::Int32(i)];
WIA::Property ^ propName = info->Properties[gcnew System::String(L"Name")];
String ^ strName = propName->default->ToString();
于 2012-08-22T07:56:05.307 に答える