tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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型について残念ながら書いていませんが)

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。