DOBON.NETプログラミング道掲示板

ログ内検索
・キーワードを複数指定する場合は 半角スペース で区切ってください。
・検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
・[返信]をクリックすると返信ページへ移動します。 (*過去ログは表示されません)
・過去ログから探す場合は検索範囲から過去ログを選択。
過去ログより前の全過去ログはこちらで検索できます。

キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
投稿日時/ 日以内
大文字と小文字を区別する

No.33368 の関連記事表示

<< 0 >>
■33368  Re[13]: C#で作成したDLLがVB6.0で利用できない
□投稿者/ Jun -(2016/05/07(Sat) 14:32:42)
http://Windows10
  • アイコン
    No33367に返信(魔界の仮面弁士さんの記事)
    > 試しに、フォーム "Form1" の ThunderRT6FormDC なウィンドウハンドル(要するに Me.hWnd) ではなく、
    > 
    > 具体的には GetWindowLong に GWL_HWNDPARENT を渡して最上位ウィンドウまでのチェーンを辿るか、
    > 例)https://support.microsoft.com/en-us/kb/259673
    > なお、この検証はコンパイルした EXE から行ってみてください。開発環境から実行した場合には、
    > ウィンドウクラス名が異なっていたような気もしますので(ThunderMain だったかな?)。
    
    トップレベルだとは思いますが一応やってみました。
    
        Dim nRet         As Long
        Dim nMainhWnd    As Long
        nRet = GetWindowLong(Me.HWND, GWL_HWNDPARENT)
        Do While nRet
           nMainhWnd = nRet
           nRet = GetWindowLong(nMainhWnd, GWL_HWNDPARENT)
        Loop
        
        Dim c As VirtualDesktopManager
        Set c = New VirtualDesktopManager
        If c.IsWindowOnCurrentVirtualDesktop(nMainhWnd) Then
            MsgBox "OK"
        End If
    
    このようにしてみましたが、やはりエラーが出ます。
    ※コンパイル実行しました。
    
    >>※なぜにエラーを発生させているのでしょうか ・・・
    > IsWindowOnCurrentVirtualDesktop メソッドの戻り値の説明文を見てください。
    > https://msdn.microsoft.com/en-us/library/windows/desktop/mt186442.aspx
    
    つまり、エラー処理して対応しなさいということですね。
    
    自作プログラム的には未解決ですが、当初のスレ題目の「C#で作成したDLLがVB6.0で利用できない」
    は一応解決(参照は出来た)ということで一端切り上げようと思います。
    話がそれてしまい誠に申し訳ないです。
    
    魔界の仮面弁士さんには色々勉強させていただきました。
    VB6.0でこんな細かいところまで踏み込めるとは思っていませんでしたので、改めて勉強したいと思います。
    
    ありがとうございました。
    
    
記事No.33343 のレス / END /過去ログ1より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/


- Child Tree -