• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:文字列を返すVCで作成したDLL関数をVBで呼ぶと...)

VBでDLL関数呼び出し時の文字数取得について

このQ&Aのポイント
  • VBでVC++で作成した文字列を返すDLL関数を呼び出した際に、Len関数を使用して文字数を取得すると正しい値が返ってきません。
  • 文字列を受け取る際に、Ret=Left(Ret,InStr(Ret,vbNullChar)-1)という処理を行うことで正常な文字数を取得することができます。
  • しかし、この処理を行わずに正確な文字数を取得する方法はあるのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 関数が返す文字列が、固定長で残りの部分がvbNullCharで埋まっているので、vbNullCharの手前までを抜き出す処理を入れなければいけません。 WinAPI関数などでは、このようなことはよく見られます。 単に文字数を出したいなら、 MsgBox(InStr(Ret, vbNullChar)-1) でいいと思いますが。 でもその後でいろいろと処理するなら、 Ret=Left(Ret,InStr(Ret,vbNullChar)-1) を入れた方がいいと思います。 たかが1行だし。

n_n
質問者

お礼

やっぱり、それしか手が無いですね。 回答していただき、有難うございました。

関連するQ&A