Article View: fj.lang.visualbasic
Article #914Re: VB固定長STRING型のC関数への引き渡し
From: Masaru Kumakawa
Date: Fri, 16 Jan 1998 00:00
Date: Fri, 16 Jan 1998 00:00
57 lines
2731 bytes
2731 bytes
Chikara Kakinuma wrote:
>
> こんにちは、柿沼DTIと申します。
> #fj.lang.visualbasic,fj.os.ms-windows.programmingの
> #クロスポストです。
>
> とっても初歩的な質問で大変恐縮なのですが、どなたかご教示
> 願います。
>
> 現在、Win95 + VB5 + VC++5 で、Windowsアプリケーションを
> 作成しています。 VCは、VBから呼び出す関数を作成してDLLと
> して利用しています。
>
> さて、本題ですが、VB側で、固定長 String 型の変数を定義して
> その値を VC側の関数へ引数として渡すと、文字列が NULL止され
> なくて困っています。
> 詳細は、以下の通りです。
>
> [VB側]
> Declare Sub VcFunc Lib "test.dll" ( s As String )
>
> Dim str As String * 5
> str = "ABC"
> VcFunc(str)
>
> [VC側]
> void __stdcall VcFunc( char *str )
> {
> printf( "[%s]\n",str ); <-- 実際はテキストファイル出力
> }
> --
> 上記のプログラムを動かすと、VcFunc()が出力した結果は、
> [ABC ] とスペースが入ってしまいます。
> この右側のスペースをなくしたいと思うのですがどうもうまくいき
> ません。VB側から渡す文字列の最後に、NULL文字を設定すれば
> うまくいくと思うのですがどうにもうまくNULL文字を設定でき
> ません。
> #VC側でスペースカットすればよいのですが、諸処の事情があり
> #VB側でNULL止したいのです。
> #また、可変 String型でやれば、問題ないのですが、これも事情が
> #あり、VB側は、固定長でなければなりません^^);;
>
> 今までだめもとでやったことは、
> 1. VB側で、 str = RTrim("ABC") ← 意味無し^^);;
> 2. VB側で、 str = "ABC"+Str(vbNull) ← 取りあえず適当に^^);
>
> VBのオンラインヘルプと数時間格闘しまオたがうまくいきません。
>
> どなたかご教示願います。
>
熊川と申します。
str = RTrim("ABC") & Chr$(0)
でも駄目でしょうか?
Technical Details
Message-ID:
<34BEA4B1.7475D46D@ny.airnet.ne.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<69is3m$khp$1@news2.dti.ne.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 110a07,20fbfaee47a48506 X-Google-Attributes: gid110a07,public X-Google-Thread: 105c2e,20fbfaee47a48506 X-Google-Attributes: gid105c2e,public From: Masaru Kumakawa <hmn1@ny.airnet.ne.jp> Subject: Re: VB固定長STRING型のC関数への引き渡し Date: 1998/01/16 Message-ID: <34BEA4B1.7475D46D@ny.airnet.ne.jp> X-Deja-AN: 316372900 Content-Transfer-Encoding: 7bit References: <69is3m$khp$1@news2.dti.ne.jp> X-Priority: 3 (Normal) Mime-Version: 1.0 To: Chikara Kakinuma <kakinuma@mars.dti.ne.jp> Content-Type: text/plain; charset=iso-2022-jp Organization: AIRnet Newsgroups: fj.lang.visualbasic,fj.os.ms-windows.programming