Article View: fj.lang.visualbasic
Article #906VB固定長STRING型のC関数への引き渡し
From: Chikara Kakinuma
Date: Thu, 15 Jan 1998 00:00
Date: Thu, 15 Jan 1998 00:00
55 lines
2746 bytes
2746 bytes
こんにちは、柿沼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のオンラインヘルプと数時間格闘しましたがうまくいきません。
どなたかご教示願います。
--
東電ソフトウェア株式会社 システム技術部 DBDC技術GRP
柿沼 力 (Chikara Kakinuma)
E-mail : OFFICE / kakinuma@tsi.co.jp
PRIVATE/ kakinuma@mars.dti.ne.jp
kakinuma@cba.att.ne.jp
Technical Details
Message-ID:
<69is3m$khp$1@news2.dti.ne.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 110a07,20fbfaee47a48506,start X-Google-Attributes: gid110a07,public X-Google-Thread: 105c2e,20fbfaee47a48506,start X-Google-Attributes: gid105c2e,public From: "Chikara Kakinuma" <kakinuma@mars.dti.ne.jp> Subject: VB固定長STRING型のC関数への引き渡し Date: 1998/01/15 Message-ID: <69is3m$khp$1@news2.dti.ne.jp> X-Deja-AN: 315908431 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="iso-2022-jp" X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4 Organization: Dream Train Internet Mime-Version: 1.0 Newsgroups: fj.lang.visualbasic,fj.os.ms-windows.programming