文字列を返す関数を持つ3番目の部分のdllがあります。 関数を呼び出すと、たとえば "123456"が返されます。少なくともそれはそのような縫い目ですが、私がミストリングしたときには長さは戻りません。ラベルのテキストプロパティを設定すると、 "123456"と表示されます。dllが文字列を正しく返さない場合の対処方法
私は私がWebサービス機能に送信DLLから得た文字列を持っている:私はから得た文字列に送るとき
rem call dll and get string
dim mystring as string=mydll.getstring()
rem Send it to the webservice
webservice.SaveString(mystring)
webexeption(「のprotocollエラー」)とWebサービスがクラッシュしますDLL。代わりに、次のように送信してください:
rem call dll and get string
dim mystring as string=mydll.getstring()
rem Send it to the webservice
dim FixedString as string = mid(mystring,1,6)
webservice.SaveString(mystring)
それがうまくいっています。それは私がDLLから得た文字列が正しいと思われて終わっていないと思うようになります。そして、私はvb.net(私はDLLを変更することはできません)からそれを修正する方法を知りません と私は事前にどのくらいの文字列があるか分からない。
dllは特定のハードウェアが接続されている場合にのみサイトで動作しますので、私はオフィスでこれを開発環境で修正しようとすることはできません。だから私は顧客にもう一度行く前にこれに対する解決策をいくつか持っていたいと思います。
編集1: 私は(私は本当の長さを知らないので)ちょうど1から100までループループを実行しようとしましたし、新しい変数に<>「すべての文字を」コピーしようとしたが、それdidntの作業。その日が終わって顧客サイトを離れなければならなかったので、私は他のバリエーションを試しませんでした。
編集2:
DLL ImはVB6で作成されています。そのDLLはC++で作られた他のDLLと話しています(私は思っています)。
私のプログラム< - > VB6-DLL < - > C++ - DLL < - >ハードウェア
あなたはそのミストリングを意味しますか?長さは何も返しません。それは整数を返します - 整数は何を返しましたか? 0? –
その本当の謎。 webserviceを呼び出す前にmsgbox(mystring& ":"&mystring.length)を実行しました。msgboxには "123456:"と表示され、その後は何も表示されませんでした。どちらもクラッシュしませんでした。 – Stefan