C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ActiveXをWinFormsで表示するとATL14.00

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■103707 / inTopicNo.1)  ActiveXをWinFormsで表示するとATL14.00
  
□投稿者/ シナモ (1回)-(2025/05/30(Fri) 21:05:37)

分類:[C#] 

環境
Visual Studio 2022
.NET 8.0
C# 12.0

レガシーなC++のプロジェクトをビルドし、
ビルドしてできたActiveXコントロールdllをaximpコマンドでラップし、
ラップしたコントロールをWinFormsのFormにAddし、そのFormを表示すると、
中央にATL14.00と表示されます。
その他の問題かもしれませんが、そのコントロールのメニュー等を押すこともできない状態です。

C++のプロジェクトもWinFormsのプロジェクトもx86でビルドしています。
ActiveXコントロールdllはregsvr32で登録済みです。
aximpコマンドでもエラーなくアセンブリが生成されています。

まず、画面中央にATL14.00と表示されるのはどういう状態なのでしょうか。
何かがおかしい状態と思っているのですが、その他に考えられる原因はありますでしょうか。

何かご存じであれば、ご教授いただきたいです。
お手数ですが、よろしくお願いいたします。
引用返信 編集キー/
■103708 / inTopicNo.2)  Re[1]: ActiveXをWinFormsで表示するとATL14.00
□投稿者/ とっちゃん (846回)-(2025/05/30(Fri) 21:25:09)
No103707 (シナモ さん) に返信

> レガシーなC++のプロジェクトをビルドし、
> ビルドしてできたActiveXコントロールdllをaximpコマンドでラップし、
> ラップしたコントロールをWinFormsのFormにAddし、そのFormを表示すると、
> 中央にATL14.00と表示されます。

レガシーなC++のプロジェクトというのがどういうものかわからないので
確証があるとは言えませんが、そのC++のコントロールの問題か
貼り付け方に問題があるかのどちらかだと思います。

Formに、Addとは具体的にどういう処理をされているのでしょうか?

ActiveX コントロールだからボタンみたいにペタっと貼ればいいとは限りません。
中には専用の初期化処理を施してやらないと表示されないようなものもあります。


> まず、画面中央にATL14.00と表示されるのはどういう状態なのでしょうか。

Add しただけだと、そのコントロールが表示するべき何かが足りない等で
「ATL14.00」とコントロールエリアの中央に表示しているのかもしれません。

まずは、C++のコントロールのコードを確認してみることをお勧めします。

引用返信 編集キー/
■103709 / inTopicNo.3)  Re[2]: ActiveXをWinFormsで表示するとATL14.00
□投稿者/ シナモ (2回)-(2025/05/31(Sat) 15:29:28)
No103708 (とっちゃん さん) に返信

ご返信ありがとうございます。

> レガシーなC++のプロジェクトというのがどういうものかわからないので
> 確証があるとは言えませんが、そのC++のコントロールの問題か
> 貼り付け方に問題があるかのどちらかだと思いシナモ
>
> Formに、Addとは具体的にどういう処理をされているのでしょうか?

メニューバーやツールバー、グラフ表示エリア等を含む内製のコントロールです。
Form上にControls.Addメソッドで追加しています。

ATL14.00と表示されるのが、そのコントロール特有ではなく、
ActiveXあるあるであればと願ってみたのですが、そういうわけでもなさそうですかね。

ActiveXは分かりづらく、規模も大きいため、どこから確認すべきか見当もつかないのが辛いところですが、
ソースコードを確認するしかなさそうですね。
引用返信 編集キー/
■103710 / inTopicNo.4)  Re[3]: ActiveXをWinFormsで表示するとATL14.00
□投稿者/ とっちゃん (847回)-(2025/05/31(Sat) 18:11:52)
No103709 (シナモ さん) に返信
> ATL14.00と表示されるのが、そのコントロール特有ではなく、
> ActiveXあるあるであればと願ってみたのですが、そういうわけでもなさそうですかね。
>
ATL は、ActiveX コントロール全般を表すような言葉ではなく
特定のライブラリの名称なので、残念ながらActiveX コントロール全般を指すようなものではありません。


> メニューバーやツールバー、グラフ表示エリア等を含む内製のコントロールです。
> Form上にControls.Addメソッドで追加しています。

色々な表示機能を持つということだとすると、相応の初期化処理や設定などを行わないと
情報が出てこないのではないか?と思います。



> ActiveXは分かりづらく、規模も大きいため、どこから確認すべきか見当もつかないのが辛いところですが、
> ソースコードを確認するしかなさそうですね。

内製品であれば依然そのコントロールを使っていたプログラムもあると思います。
そちらで何をやっているかを調べるほうが早いかもしれません。
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ