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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■7104  C++のDLLからVBで値を受け取るには?
□投稿者/ シープラ -(2006/10/03(Tue) 14:33:16)

    分類:[VC++(C++/CLI)] 


    分類:[VC++(C++/CLI)] 


    動作環境
    Visual C++ (Visual Studio 2005)
    VB6.0 SP5
    WinXp

    C++でCOMを作成しました。
    それをVBから呼び出し文字列もしくは数値を受け取りたいのですが
    どうしても文字列が空で参照できません。

    C++側
    -------------------------------------------------------------------------------------------------
    宣言部分
    [id(5), helpstring("メソッド get_test")] HRESULT get_test([in] BSTR str, [out] BSTR* strout);

    処理部分
    STDMETHODIMP Caaa::get_test(BSTR str, BSTR* strout)
    {
    CComBSTR testBstr("あいうえお");
    BSTR bstr = testBstr; // bstrにはあいうえおが格納されている

    CAtlString aaa;

    aaa = (WCHAR*)str;

    MessageBox(NULL,spBstr,aaa,0); // あいうえおが表示される
    MessageBox(NULL,bstr,aaa,0); // あいうえおが表示される

    strout = &bstr; // out引数に"あいうえお"のアドレス格納
    // これがVB側で参照できればいい。

    return S_OK;
    }

    vb側
    -------------------------------------------------------------------------------------------------

    Private Sub Command3_Click()
    On Error GoTo Err_Command3_Click
    Dim fff As aaa

    Dim str1 As String
    Dim str2 As String

    str1 = "わたった" ' この文字がC++に渡っているのは確認済

    Set fff = CreateObject("ttt.aaa.1")
    fff.get_test str1, str2 'C++メソッド実行

    MsgBox (str2) ' str2が空になっており参照できない


    Set fff = Nothing
    Exit Sub

    End Sub


    この方法でVB側に"あいうえお"の文字が渡ってこないのはなぜでしょうか?
    色々と試しているのですが、str2は参照渡しで渡ってこないのでしょうか?
    それとも根本的に何か間違っているのか、よくわからない状態になってしまいました。

    助言いただけたら幸いです。
    宜しくお願いします。

親記事 /0過去ログ7より / 関連記事表示
削除チェック/

■17350  Re[7]: SQL SERVER接続タイムアウト
□投稿者/ トミー -(2008/04/22(Tue) 19:26:37)
    No17341 (トミー さん) に返信
    > ■No17339 (はつね さん) に返信
    >
    >>サーバーは指定していないってこと?
    >>で、SQL ServerとVisual StudioとEnterpriseManagerはすべて同一マシンってこと?
    >
    > SQL Serverは別の端末で起動しています。
    > SQL Server(クライアント?)とVisual StudioとEnterPriseManagerは同一マシンです。
    >>
    >>
    > >>それでは、繋がっているというEnterpriseManagerの接続プロトコルを教えて下さい。
    >>
    >>こっちはわからないってこと?
    >>
    >
    > はい。わかりません・・・。
記事No.17297 のレス / END /過去ログ34より / 関連記事表示
削除チェック/

■54762  Re[2]: クリックされたボタンNameを取得し、似たNameのラベルを
□投稿者/ きしり -(2010/11/01(Mon) 17:17:28)
    m2 さん

    コントロール内を検索、なんていう方法があるんですね。
    大変勉強になりました。
    ありがとうございました。
記事No.54757 のレス / END /過去ログ92より / 関連記事表示
削除チェック/

■54824  Re[5]: PSPで動画
□投稿者/ 002 -(2010/11/03(Wed) 21:49:59)
記事No.54733 のレス /過去ログ92より / 関連記事表示
削除チェック/

■54763  c#言語仕様はどこにありますか?
□投稿者/ furu -(2010/11/01(Mon) 17:22:34)

    分類:[C#] 

    c#2.0を使用しています。
    あいまいな部分は言語仕様で確認したいと思っていますが
    言語仕様がどこにあるかわかりません。
    ローカルマシンのVC#\Specifications\1041\ ディレクトリには、
      「C#言語仕様 Version 1.2」 … C# Language Specification 1.2.doc
      「C#バージョン 2.0 の仕様」 … C# Language Specification 2.0.doc
    があります。しかし、c#2.0として書かれているものではありません。

    例えば、??演算子の優先順位を知りたい場合、
    上記の仕様には書かれていなくてわかりません。

    「7.2.1 演算子の優先順位と結合規則」 … ??演算子がない
    「19.5 null 許容型」 … 優先順位が書かれていない

    やってみればわかりますが、その結果が仕様なのか、
    コンパイラのバグなのか私には判断できません。

    どこかにc#2.0の言語仕様はないものでしょうか?
    よろしくお願いします。
親記事 /過去ログ92より / 関連記事表示
削除チェック/

■66682  Re[3]: Windows8上でのFrameworkのバージョン取得
□投稿者/ せんぺい -(2013/05/16(Thu) 16:16:39)
    No66680 (COCOE さん) に返信

    COCOEさん、ありがとうございます。

    > .NET2.0から.NET3.5まではCLR2.0で統一されていたので分かり易かったですが、
    > .NET4.0(CLR4.0)と.NET4.5(CLR4.5)の関係は分かり難いですね。
    > (置き換えだけど再コンパイル不要で動くハズ!とか言われても^^;)

    まったくです(泣)

    > 既に確認済のようですが、確実に確認したいならレジストリしか無さそうです。

    やはりそうですか。
    Windows8だけの問題ではなく、Vistaや7にFramework4.5をインストールした場合も同じ現象が発生するわけですから、確実にレジストリを参照して分岐することにします。

    ありがとうございました。
記事No.66676 のレス /過去ログ113より / 関連記事表示
削除チェック/

■88599  Re[6]: フォルダ名とその更新日時を一緒に収得
□投稿者/ Jitta -(2018/09/10(Mon) 10:15:28)
    >> Dim Directori As String() = System.IO.Directory.GetDirectories("C:\Users\○○○\○○○", "*", System.IO.SearchOption.AllDirectories)
    >> Dim Directori_Update As DateTime = System.IO.File.GetLastWriteTime(Directori(0))
    > System.IO.Directory.GetDirectories は戻り値が配列であるがゆえに、
    > すべてを列挙し終えるまで、結果が返却されません。
    >

    取り急ぎ
    string?directoryinfo じゃないの?
    だから同時に返っていると判断したんだけど??
記事No.88574 のレス /過去ログ152より / 関連記事表示
削除チェック/

■88601  Re[7]: フォルダ名とその更新日時を一緒に収得
□投稿者/ とっちゃん -(2018/09/10(Mon) 10:23:58)
    No88599 (Jitta さん) に返信
    > >> Dim Directori As String() = System.IO.Directory.GetDirectories("C:\Users\○○○\○○○", "*", System.IO.SearchOption.AllDirectories)
    > >> Dim Directori_Update As DateTime = System.IO.File.GetLastWriteTime(Directori(0))
    >>System.IO.Directory.GetDirectories は戻り値が配列であるがゆえに、
    >>すべてを列挙し終えるまで、結果が返却されません。
    > >
    >
    > 取り急ぎ
    > string?directoryinfo じゃないの?
    > だから同時に返っていると判断したんだけど??


    DirectoryInfo.GetDirectories() なら 「DirectoryInfo の配列」ですが、質問者さんが書いているのは、
    Directory.GetDirectories() なので、「string の配列」が返ってきます。

    Jittaさんの揚げ足をとる形にしてますが、この些細な違いをきちんと認識できていないと、なんで同じようなことを何回も?
    となるので、あえて突っ込んでおきます。
記事No.88574 のレス /過去ログ152より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -