🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.lang.visualbasic
Article #906

VB固定長STRING型のC関数への引き渡し

#906
From: Chikara Kakinuma
Date: Thu, 15 Jan 1998 00:00
55 lines
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-mail

Show 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