掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
SmtpMailクラスとアンマネージDLL (ID:118074)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> ところで、引数について私の参考書にはByValで宣言されているものもあったのですが、 > なぜ今回ByValではNGでByRefに変更したらうまくいったのでしょうか? う〜ん。 簡潔に説明できる自身が無いので、細かい説明はパスさせて下さい。 # C形式の文字列云々とか、OLEのBSTR文字列の説明とかを # 始めてしまうと、キリが無いし…。 > (呼び出すDLL側の仕様でしょうかね。。?) まぁ、そういう事です。 http://www.hi-ho.ne.jp/babaq/bsmtp.html のページでは、VB6/VBA向けの コードで記述されていますので、よく見ないと、ByRef で宣言する仕様に なっている事に気づき難いかも知れませんね。 ほとんどの文字列系DLLは、Stringの受け渡しを、ByVal As String で 行う事になります。ByRefで渡すタイプはごく稀です。 たとえば、よく使われる USER32 とか GDI32 とか KERNEL32 などのDLLでは、 文字列は基本的に ByVal As String で渡す仕様になってます。 (Unicode文字列形式を要求するタイプは、ByRef As Byteなどになりますが) OLE/COMベースの処理を行うDLLの中には、今回のように、ByRefで 文字列を渡す仕様の物もありますが、そういう DLL は、 さほど多くありません。 そもそも、OLE/COM系DLLの場合、参照設定して使うタイプが多いですしね。(^^;)
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.