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

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

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

No.7395 の関連記事表示

<< 0 >>
■7409  Re[4]: VB.NETからVisual C++にchar*型を渡す方法
□投稿者/ ゆうじ -(2006/10/10(Tue) 20:03:06)

    分類:[.NET 全般] 

    Blueさん返事ありがとうございます。

    ご提案いただきましたstrcpyやsprintfを使うところだけ
    局所的にchar型配列を使う方法で解決いたしました。
    大変勉強になりました。

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

■7405  Re[3]: VB.NETからVisual C++にchar*型を渡す方法
□投稿者/ Blue -(2006/10/10(Tue) 18:03:43)

    分類:[.NET 全般] 

    どうせならば、C++/CLI側で文字列を作って返すようなつくりにしたほうがよさそう。
    で、strcpyやsprintfを使うところだけ局所的にchar型配列を使うとか。

    System::String^ s = "1234";

    // sを使って文字列を作る。
    char buff[ 256 ];
    IntPtr p = System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(s)

    sprintf( buff, "%IDは %s です。", static_cast< const char* >( p.ToPointer() ) );
    System::String msg( buff );
    MessageBox::Show( buff );

    System::Runtime::InteropServices::Marshal::FreeHGlobal(p);


    ※VBは基本的にUnicode(UTF16?)ですので、strcpyやsprintfではなく、wchar_t型用の
    wcscpyやswprintfを使ったほうがやりやすいです。
    (Marshal〜を使わないで、PtrToStringCharsでconst wchar*型が取得できる)
    参考
    http://support.microsoft.com/kb/311259/ja

記事No.7395 のレス /0過去ログ7より / 関連記事表示
削除チェック/

■7403  Re[2]: VB.NETからVisual C++にchar*型を渡す方法
□投稿者/ ゆうじ -(2006/10/10(Tue) 17:24:57)

    分類:[.NET 全般] 

    Blueさん返事ありがとうございます。

    > C++/CLI側で char* で扱うのには意味があるのでしょうか?
    > System::String^(もしくはSystem::Text::StringBuilder^) ではダメなんでしょうか?
    現在VC++6.0のソースを移行しております。
    char* で扱うのはメソッド内でstrcpy、sprintfを使用しているためだけです。
    System::String等で受け取って、メソッド内でchar*に変換したりできるのでしょうか?
    C++/CLIが理解できておらず、System::Stringなどの発想がありませんでした。
    ありがとうございました。


    >>(char*)m_strID = (char*)strID;
    > 意味不明です。
    改修中のソースを貼り付けました。失礼しました。

記事No.7395 のレス /0過去ログ7より / 関連記事表示
削除チェック/

■7398  Re[1]: VB.NETからVisual C++にchar*型を渡す方法
□投稿者/ Blue -(2006/10/10(Tue) 17:07:58)

    分類:[.NET 全般] 

    2006/10/10(Tue) 17:08:33 編集(投稿者)

    C++/CLI側で char* で扱うのには意味があるのでしょうか?
    System::String^(もしくはSystem::Text::StringBuilder^) ではダメなんでしょうか?
    (出来るだけVB,C#ではアンマネージドを意識させたくない気がしますが。)

    > (char*)m_strID = (char*)strID;
    意味不明です。
記事No.7395 のレス /0過去ログ7より / 関連記事表示
削除チェック/

■7395  VB.NETからVisual C++にchar*型を渡す方法
□投稿者/ ゆうじ -(2006/10/10(Tue) 17:02:42)

    分類:[.NET 全般] 


    分類:[.NET 全般] 

    いつもお世話になっております。ゆうじです。

    VB.NETからVisual C++にchar*型を渡す方法で悩んでいます。
    よろしくお願いいたします。

    開発環境:VS2005 Professional
    OS:WinXP SP2

    【ソースの構成】
    ソリューションに下記のプロジェクトを追加しています。
    ※以下は作成した手順です。
    @VB.NET→Windows→Windowsアプリケーション
    AVisual C++→CLR→クラス ライブラリ

    @→Aで参照設定して、以下のようなソースを書いております。

    @のコード
    Public Class クラスB
    Private Sub ボタンB_Click( _
    ByVal sender As System.Object, _
    ByVal e As System.EventArgs _
    ) Handles ボタンB.Click

    Dim sb As New System.Text.StringBuilder(256)
    sb.Append("123")
    クラスC.Set_ID(sb)

    End Sub
    End Class

    Aのコード
    namespace プロジェクトC
    {
    public:
    char *m_strID;

    public ref class クラスC
    {
    void クラスC::Set_ID(
    char* strID
    )
    {
    (char*)m_strID = (char*)strID;
    }
    }
    }
    }

    【エラー内容】
    以下のエラーが発生します。
    「エラー 'Set_ID' には、サポートされていない戻り値の型か、
    またはサポートされていないパラメータ型が指定されています。」

    このエラーを解決するには
    ・サポートされている型として戻り値の型またはパラメータを定義します。
    ・プロシージャによって使用されるデータを記述する新しい型を作成します。
    らしいですが、力不足でよい案が浮かびません。

    VB.NETからVisual C++にchar*型を渡す方法について、
    ご教示のほどよろしくお願いいたします。


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

■7395  VBのExit Sub・はC#では何ですか
□投稿者/ カオル -(2007/09/05(Wed) 10:34:37)

    分類:[C#] 

    お疲れ様です。(環境:C#.NET2005)

    C#初心者です。
    VB.NETで言うところのEXit Sub・Function SubがC#では何というのでしょうか?
    探してるのですが、見つかりません。
親記事 /過去ログ18より / 関連記事表示
削除チェック/

■7396  Re[1]: VBのExit Sub・はC#では何ですか
□投稿者/ HiJun -(2007/09/05(Wed) 10:37:59)
    No7395 (カオル さん) に返信
    > お疲れ様です。(環境:C#.NET2005)
    >
    > C#初心者です。
    > VB.NETで言うところのEXit Sub・Function SubがC#では何というのでしょうか?
    > 探してるのですが、見つかりません。
    >
    Exit Subの場合は、return;
    Exit Functionの場合は、return 戻り値;

記事No.7395 のレス /過去ログ18より / 関連記事表示
削除チェック/

■7397  Re[2]: VBのExit Sub・はC#では何ですか
□投稿者/ カオル -(2007/09/05(Wed) 10:51:55)
    No7396 (HiJun さん) に返信
    ありがとうございます。

    returnは、こういう使い方だと、頭の中で決めすぎていました。(言語が違うのに)
記事No.7395 のレス / END /過去ログ18より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -