No.2ベストアンサー
- 回答日時:
BLUEPIXYさんが言われているように、使用するための引き込みの宣言が微妙に異なります。
大きく違う部分としては、メモリを意識する方法だと思います。
何かと
Imports System.Runtime.InteropServices.Marshal
クラスを多用することになります。
例えばVB6時代に
・VarPtrを使用しなければならない場合
・APIの引数に構造体を利用し、構造体内部のメンバに配列が存在する場合
・APIの引数に構造体を利用し、構造体内部のメンバに固定長の文字列型が存在する場合
・APIの引数に構造体を利用し、構造体内部のメンバのIN/OUTなどの属性を細かく設定しなければならない場合
・APIの引数に、構造体の領域サイズ長を渡す必要がある場合
・API関数実行後、取得したポインタから、特定の型にキャストする場合
などなど、、、
http://okwave.jp/kotaeru.php3?q=2092957
に、Marshalクラスを多用しているサンプルを書いてますので、よろしければどうぞです。
ちなみに私の場合は、.NETの書籍は一冊も購入しておりません。
VB6時代に購入した、APIの書籍
「Visual Basic Tips 1000」
http://bookweb.kinokuniya.co.jp/guest/cgi-bin/ws …
を愛用しております。
ガリバーさんが出している書籍で、今は亡き[vbvbvb.com]のAPIサンプルが出ております。
HTMLで一覧が出ているので、秀丸などでGREPして、使用したい目的のAPIが素早く検索できます。
さらに
http://www.microsoft.com/japan/msdn/net/general/ …
で、本当にAPIを使用しなければならないかを調べた後、どうしてもAPIならば、サンプルソースをEXCELのVBAなどに張って、変換を行っております。
APIで使用するDLLは「VB6用」でもないし「.NET用」でもないですよね。
わたしは最近本屋さんに行っておりませんので、.NET用で多くのサンプルがある本が出版されているのか知らないのですが、、、
「.NET用の本」として固執せずに、多くのサンプルが出ている本を求めた方が、何かと便利だと思います。
「どのようなAPI関数が存在するか」「API関数で可能なこと」
が見えます。
VB6用の本を購入した場合、どうしても変換がわからない場合は、ここのような掲示板や、メーリングリストに投稿してはいかがでしょうか?
変換は「慣れ」です。繰り返し行うことで、自然と身につきます。変換のパターンは、経験上、それほど多いとも思いません。
そうすることにより、「このAPIは、、、」という技術ではなく「このタイプのAPIは、、、」という、参考文献の存在しないAPI関数にも強くなれると思います。
機会があれば、自分でCで呼び出される側のDLLを作成してみるのも、スキルアップだと思いますよー
http://okwave.jp/kotaeru.php3?q=235547
お返事ありがとうございます。
まだまだ分からないことだらけで、ちょっとしたことで何日も停滞してしまう状態ですが、
少しずつ感じが掴めるように勉強して行きたいと思います。
Visual Basic Tips 1000という本は初心者にもよさそうですね。
APIは存在をまず知らないとどうにもならないので、
とても便利な本のように感じました。
ご回答ありがとうございます。
No.1
- 回答日時:
Declare ステートメントを使った書き方は、ほとんど同じですが、
Integer などのサイズがVB.NET とVB6 では、違うことに注意する必要があります。
http://msdn2.microsoft.com/ja-jp/library/4zey12w …
また、
VB.NET では、DllImport 属性を利用した書き方もできます。(下のサイトによると、こちらが推奨)
http://www.microsoft.com/japan/msdn/vbasic/migra …
良いページのご紹介ありがとうございます。
詳しく出ているようなので、よく目を通してみたいと思います。
ご回答ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript API連携のプログラミングについて(Typescript) 2 2023/05/03 11:00
- その他(プログラミング・Web制作) TwitterAPIを使用せずに自動ツイートする方法を知りたい。考え方としてはブラウザを擬似操作して 2 2023/02/02 17:16
- その他(開発・運用・管理) おんどとりWebStorage APIから温度情報を取得し表示したい 2 2023/08/03 09:53
- その他(プログラミング・Web制作) このpythonコードの意味教えて下さい! 2 2022/08/26 00:52
- Java javaのクラスの分け方について質問です。 APIの内部用と外部用でクラスを分けたいのですがインター 2 2022/04/26 16:06
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- その他(プログラミング・Web制作) AndroidStudio エラー と インストール の件 1 2023/06/27 12:28
- ハッキング・フィッシング詐欺 フィッシング詐欺についてです。先ほど佐川急便と見せかけた詐欺メールが届き、うっかり誘導に従ってApp 1 2022/10/17 19:45
- ソフトウェア VisualStudio のデータブレークポイントを有効にする方法 1 2023/05/01 09:42
- 英語 関係形容詞"which"の感覚について 4 2022/12/05 11:46
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
家電製品の電力周波数を変える機械
-
C++からCへのソース変換について
-
Mac 乗数の入力方法
-
はしごの高をマックで表示する...
-
VB.NETとVB6.0でAPIを使う場...
-
SJIS⇔UTF-8の文字コード...
-
VBAを使って二進法計算
-
XMLからCSV変換について
-
OpenCVで画像をある角度から見...
-
tex 郵便記号のだしかた
-
C++を使った汎用性のあるXML変...
-
gnuplotをC言語で操作する方法
-
機械語からアセンブリ言語への...
-
木構造の前置形と行きがけ順に...
-
配列 反時計回り90ど回転
-
色の変換
-
緯度、経度の 10進法と 60進法...
-
エクセルのvbaで検索ボタンを作る
-
内部文字コードとは?
-
VS2012でOnInitDialogが2回呼出し
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
緯度、経度の 10進法と 60進法...
-
Mac 乗数の入力方法
-
3のつく数字と3の倍数のみを表...
-
10進数をBCDに変換する方法
-
bmp→jpgに、jpg→bmpに
-
エクセルVBAの自動変換機能?
-
アセンブラ言語の数字を数値に...
-
なぜ通信には16進数文字列が使...
-
SJIS⇔UTF-8の文字コード...
-
C++からCへのソース変換について
-
分を時間に変換するプログラム
-
UTF8→ShiftJISに変換したいです!
-
家電製品の電力周波数を変える機械
-
マンセル⇔XYZ,RGB変換式或いは...
-
VB.NETをJavaに変換するツール...
-
画像ファイル変換(Tiff→PDF)
-
PHPで、日本語からアルファベッ...
-
魚眼レンズの画像処理
-
C#で漢字→ローマ字を変換
-
StrConvの使い方について教えて...
おすすめ情報