• ベストアンサー

VBA&c++のデータ受け渡り

excel VBAを使用し、セルに入っているipアドレスを文字列をc++で作成したDLLファイル内にある関数に引数として渡したいのですが、関数内で確認すると旨く渡っていません。(正しく表示されない) 何か特別な方法やアドバイスが有れば宜しくお願いいたします。 現在の状況は文字列をstringに入れそのアドレスを引数としています。DLL内関数の引数の型はcharのアドレスです。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

DLL内の関数が func(char *str) だとしたら、 VBA では、 Declare Function func Lib "funcdll.dll" (ByVal str As String) dim str as String str="192.168.10.11" func(str) で良いです。 アドレスを渡す必要はないです。

jintoku
質問者

お礼

有難う御座いました。 BLUEPIXYさんの通り参照渡しを変更した結果うまく いきました。 大変感謝致します。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

DLL内の関数のコールまでおこなえていて、引数が受け取れていないのであれば、 1.呼び出し規約WINAPI (または__stdcall)の指定がDLLの関数に無い。 2.VBのDeclareステートメントが間違ってる のどちらかだと思います。

jintoku
質問者

お礼

無事に解決出来ました。 ご協力有難う御座いました。

すると、全ての回答が全文表示されます。

関連するQ&A