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

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

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

No.69032 の関連記事表示

<< 0 >>
■69032  Re[11]: vb.netからC++の文字列配列引数付DLLの呼び出し
□投稿者/ unagi -(2013/11/28(Thu) 22:46:19)
    No68978 (774RR さん) に返信
    > No68937 で既に指摘済みの話なわけでいまさら感がするわけだが
    >>そして、.NET Framework では、UNICODE です。
    >>「char*」は、文字へのポインターです。
    >>そして、ANSI コードです。
    >>変換できません。
    >
    > C/C++ 側で char を使ってしまうと
    > System.Char (UTF-16) -> char (MBCS/CP932) -> System.Char (UTF-16) の変換が入るので
    >
    > ・ UTF-16 で表記できるが CP932 にない文字は真に文字化けする
    > ・不必要な変換が入るので遅い
    > ということになるわけで、お勧めぢゃない。
    >
    > No68914
    >>int dllfunc(int intDataNum, char * strInputDts[], char * OutputDts[])
    > この関数原型宣言を見た時点で俺や Azulean 氏は以下のような感想をいだくわけだ。
    >
    > ・文字列バッファ長を指定する何かがないのでバッファオーバーフロー脆弱性を含んでいる。
    > No68938
    >>C++ 同士であればこのように使うというサンプルが見えないと、具体的なコードの提示は難しいと思います。
    > というのは OutputDts の使い方がわからない、って意味。
    >
    > 実装例1:
    > for (i=0; i<intDataNum; ++i) {
    > strcpy(OutputDts[i], strInputDts[i]);
    > }
    >
    > 実装例2:
    > for (i=0; i<intDataNum; ++i) {
    > OutputDts[i]=strdup(strInputDts[i]));
    > }
    > どっちかで .NET 側実装はまったく違う。
    >

    返信が遅くなり申し訳ありません。

    実装例1:
    for (i=0; i<intDataNum; ++i) {
    strcpy(OutputDts[i], strInputDts[i]);
    }

    に該当します。
記事No.68914 のレス /過去ログ117より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -