タイトル : Re^5: wininet.dllを使用したftpについて 投稿日 : 2010/08/28(Sat) 00:19 投稿者 : よねKEN
> > IntPtr にしたのではありませんでしたっけ。 > ftp関係ではIntegerは使用せずIntPtrを使用したほうがいいということでしょうか。 そういう意味ではないでしょう。IntPtr型にすべきもの、Integer型にすべきもの、 XXX型にすべきもの、いろいろです。 wininet.dllで定義されている関数のMSDNライブラリの説明は以下にあります。 WinINet Functions http://msdn.microsoft.com/ja-jp/library/aa385473(VS.85).aspx ここではC言語での関数のシグネチャが書いてありますので、 引数、戻り値のC言語での型を確認してください。 その上でVB2008でDeclare宣言するために.NETのどの型を適用するのか 判断する必要があります。 > 全てIntPtrにしましたが、結果は変わりません。 引数の意味も違えば、当然とるべき型も違うので、それは無茶苦茶です。 > > InternetOpen にしても InternetConnect にしても、 > > その戻り値はインターネットハンドル(HINTERNET)ですよね。 > インターネットハンドル(HINTERNET)かは不明ですが、以下のAPIで取得しています。 上記のURLからInternetOpen関数やInternetConnect関数の定義を確認しましょう。 元の定義ではHINTERNET型です。Windows APIでは、H〜と命名されるものは だいたいハンドルで、ハンドルは実行環境のネイティブサイズのポインタです。 そのため、最適の型がIntPtrだ、となります。 #IntPtr型でなくてもInteger型でもうまく行くのは、 #実行環境が32bitの場合だけです。 <<参考ページ>> KEN's .NET [特集6] GetPrivateProfileStringにみるAPIの使用方法 http://www5b.biglobe.ne.jp/~yone-ken/VBNET/special/sp06_GetPrivateProfileString.html 手前味噌ですが、上記のページでは、(.NET対応版の)VBからWindows APIを呼び出す場合の 宣言方法の考え方をまとめていますの多少は参考になると思います。 (IntPtr型について残念ながら書いていませんが) |