none
エラー 2 引数 3: 'out int' から 'out object' に変換できません RRS feed

  • 質問

  • ActUtlTypeLib.ActMLUtlTypeClass[] axActMLUtlType = new ActUtlTypeLib.ActMLUtlTypeClass[1];

    axActMLUtlType[0] = new ActUtlTypeLib.ActMLUtlTypeClass();

    で実装しており

    iReturnCode = axActMLUtlType[0].ReadDeviceBlock2(szDeviceName, iNumberOfData,  out arrDeviceValue[0])

       *axActMLUtlType[0].ReadDeviceBlock2(object varDevice, object varSize, out object lpvarData) 

    この様なコードを入力したところ

    エラー 2 引数 3: 'out int' から 'out object' に変換できません

    というエラーが出ました

    おそらく out arrDeviceValue[0]のところが悪いのでしょうがよくわかりません

    2014年4月6日 9:36

回答

  • 一つ前の投稿に出ているエラーは (int)o のキャスト部分(太字強調箇所)が抜けていたのでは?

    あと、出自不明のクラスライブラリの使い方を質問しているわけですが、型が何者なのかまったくわからないので、どのように修正することが適切か、第三者にはまったく想像がつきません。
    .NET のベースクラスライブラリや非常に一般的なライブラリであれば答えを得られやすいのですが、特定の業界や特定の製品でしか使わないクラスライブラリを前提に話をされると、第三者が的確な助言をすることが難しいです。そういうライブラリの使い方のご質問は、同じ業界・同じ製品を使う人が多く集まる場所でされた方がよいかもしれません。

    (想像するに COM? メソッド名からすると三菱の PLC のライブラリ? 2004/10 付けのドキュメントは short 型だったけれども、今は違うということかな?)


    2014年4月6日 12:43
    モデレータ

すべての返信

  • out object(object 型変数への書き込み指定)が要求されているところに、out int(int 型変数への書き込み指定)を書けませんと言われています。
    ローカル変数など、object 型の変数を用意して指定するように改めてください。

    object o;
    iReturnCode  = ReadDeviceBlock2(szDeviceName, iNumberOfData,  out o);
    arrDeviceValue[0] = (int)o;

    2014年4月6日 10:46
    モデレータ
  • ありがとうございます

    早速テストしたところ

    エラー 1 型 'object' を 'int' に暗黙的に変換できません。明示的な変換が存在します。(cast が不足していないかどうかを確認してください) 

    というエラーがでました

    2014年4月6日 10:57
  • ありがとうございました

    ActUtlTypeLib.ActMLUtlTypeClass[] axActMLUtlType = new ActUtlTypeLib.ActMLUtlTypeClass[1];

    から

    ActUtlTypeLib.ActMLUtlType[] axActMLUtlType = new ActUtlTypeLib.ActMLUtlType[1];

    に変更したら、何故かうまくいきました。

    今後ともよろしくお願いいたします

    2014年4月6日 12:17
  • 一つ前の投稿に出ているエラーは (int)o のキャスト部分(太字強調箇所)が抜けていたのでは?

    あと、出自不明のクラスライブラリの使い方を質問しているわけですが、型が何者なのかまったくわからないので、どのように修正することが適切か、第三者にはまったく想像がつきません。
    .NET のベースクラスライブラリや非常に一般的なライブラリであれば答えを得られやすいのですが、特定の業界や特定の製品でしか使わないクラスライブラリを前提に話をされると、第三者が的確な助言をすることが難しいです。そういうライブラリの使い方のご質問は、同じ業界・同じ製品を使う人が多く集まる場所でされた方がよいかもしれません。

    (想像するに COM? メソッド名からすると三菱の PLC のライブラリ? 2004/10 付けのドキュメントは short 型だったけれども、今は違うということかな?)


    2014年4月6日 12:43
    モデレータ
  • ありがとうございました

    型の指定も間違いでshortでした

    またお世話になりますがよろしくお願いします

    2014年4月7日 13:37