none
System.Windows.Forms.AxHostについて RRS feed

  • 質問

  • いつもお世話になっております。

    VS2015UD3で作業しています。

    表題の件ですが、c++64ビットActiveXコントロールをC#にて貼り付け(AxHost使用)、そのコントロールにデータ渡す(object→dynamic)を行っておりますが、プロジェクトのプロパティのアプリケーションにある対象のフレームワークが、「.NET Framework 4」なら動作するのですが、「.NET Framework 4.5.1」にすると渡りません。

    調査したのですが、使えるようですが一部のプロパティがサポートされていないような記述もあり、よくわかりません。

    AxHostの仕様は、「.NET Framework 4」と「.NET Framework 4.5.1」で違うところがあるのでしょうか?

    またc++64ビットActiveXコントロールをC#で使うにあたり、AxHost以外の方法がございますでしょうか?

    分かりやすいページなどがあれば有難く、ご教示の程、どうぞ宜しくお願いいたします。

    2016年8月9日 8:40

回答

  • 自己レスです。

    大変お騒がせいたしました。
    .NET Framework 4.5.1にすると、それまで通っていた変数の型(メモリ領域)が通らなくなっているのが原因でした。
    具体的には、c++側のlongをLONGLONG(__int64)に変えることで、値が渡りました。ポインタの位置が変わるということでした。

    大変お騒がせいたしました。
    ありがとうございました。
    2016年8月10日 1:15