ActiveXコントロールからポインタのアドレスを取得 – プログラミング – Home

ActiveXコントロールからポインタ...
 
通知
すべてクリア

[解決済] ActiveXコントロールからポインタのアドレスを取得


チャイ
 チャイ
(@チャイ)
ゲスト
結合: 16年前
投稿: 24
Topic starter  

MFC ActiveXコントロールでイメージ表示用のコントロールを作成、
表示中のイメージデータへのポインタを取得するメソッドを追加しようと
思っていたのですが、メソッドの追加ウィザードからうまく追加できず
困っています。

具体的には、メソッドの引数にダブルポインタ(BYTE**)を設定するか、
戻り値にポインタ(BYTE*)を設定するかしたいのですが、
ウィザード上の「戻り値の型」や「パラメータの型」のリストに候補が
ないのです。

方法に問題があるのか、実現不可なのか回答を宜しくお願いします。


引用未解決
トピックタグ
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

直接入力しちゃえばいいんじゃないでしょうか。


返信引用
チャイ
 チャイ
(@チャイ)
ゲスト
結合: 16年前
投稿: 24
Topic starter  

aetosさん、返信ありがとうございます。

関数の戻り値を(BYTE*)として直接入力を試みたら
メソッドは追加されたのですが、ビルドすると
「error C2065: 'VT_PUI1' : 定義されていない識別子です。」
というエラーが出力されてしまいます。

パラメータにダブルポインタを指定しようとすると、
「パラメータの型は、一覧からのバリアント互換型でなければなりません。」
となって入力を受け付けてくれないです。

どちらもウィザード上で設定した場合です。


返信引用
チャイ
 チャイ
(@チャイ)
ゲスト
結合: 16年前
投稿: 24
Topic starter  

自己解決しました。

目的のアドレスは、戻り値にULONGLONGを指定することで
変数としてですが取得出来ました。

VC++しか知らないためにActiveXのインターフェイスに
ダブルポインタも使えるものと思ってたのが間違いだった
と思います。
そうすると、ActiveXコントロールが保持している変数やメモリ
等のアドレスを得ること自体、考えとして間違っているので
しょうか?
同じメモリ空間にマップされている以上、取得することは問題
ないと思うのですが、、、

とりあえず解決したのでチェックを入れました。


返信引用
wclrp ( 'o')
 wclrp ( 'o')
(@wclrp ( 'o'))
ゲスト
結合: 18年前
投稿: 287
 

ActiveX(COM)は昔ちょっとやっただけなので忘れたな。
ActiveXはVB,VBScript,JScriptなどでも使うものなので
バリアント型を使うべきだな。

まあ、自分用でどうでもいいっていうなら、
無理やり使っても俺にはどうでもいいことなので
どうぞポインタをULONGLONGで返しちゃいなさい。
C/C++プログラマから見ればポインタじゃないと
* 内部データじゃなくて毎回クローンコピーの受け渡し
* バリアント型はいろいろ面倒でプログラム書くのが苦痛
* 処理が遅い
やってられないよね。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました