

お世話になります。
VB.NETでAPI関数を呼び出す場合にまず、API関数を格納しているDLLを宣言しなけれならないと下記URLにあります。
(http://www.atmarkit.co.jp/fdotnet/dotnettips/024 …
(a)DllImport属性を利用する方法
<System.Runtime.InteropServices.DllImport("DLL名")> _
Function API関数名(仮引数)
End Function
(b)Declareステートメントを利用する方法
Declare Function API関数名 Lib "DLL名" (仮引数)
そこで、質問なのですが、(a)、(b)どちらの方法で実現する場合においても、DLLの格納場所はC:\Windows\System32でないといけないのでしょうか?(実際にコーディングしてもSystem32フォルダにないとエラーになってしまいます。)
任意のフォルダにDLLを格納し、そこを参照できるようにできるのでしょうか?
また、一般常識としてDLLはSystem32フォルダに格納しておかないといけないものなのでしょうか?
以上、よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
DLL名にパスを含んでいない場合は
1) EXEファイルのカレントフォルダ
2) Windowsのシステムフォルダ(Win9x系ならWindows\Sysytem・WinNT系ならWindows\System32)
3) Winddows\Systemフォルダ
4) Windowsフォルダ
5) 環境変数PATHの設定フォルダ
といった順番でDLLを探すと思います
WinNT系へインストールする際にフォルダの権限などが原因で独自のDLLをWindows\System32へ書き込み出来ないとか
アンインストールなどの機能を提供しない
などの要因によって DLL自体を実行ファイルと同じフォルダに置くこともありますよ
『DLLを必ずWindows\System32に置きなさい』といった規約はありません
返信が遅くなり申し訳ありません。
DLLの指定で絶対パスを入力していれば任意のパスで動作しました。
また、回答頂いた、1)~5)のパスにDLLを格納しても動作しました。
DLLはアプリケーション作成者が任意のパスに格納して、おけばいいのですね。
どうも、的確なご回答をいただきありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) IT初心者です 仕事で、vb.netで作成されたdllをvbaで呼び出すプログラムを作成しろと言われ 1 2023/03/27 08:22
- フリーソフト 色々な形式の個人情報を後で参照しやすいようWindow10で管理したいのですが、どんな方法があるの? 1 2023/04/29 16:46
- ノートパソコン .dllファイルがありませんと表示される 5 2023/04/30 03:03
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- Windows 10 IT初心者です! powershellで以下のようなエラーが出ました オブジェクト参照がオブジェクト 1 2023/05/17 11:30
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- フリーソフト cygewf-2.dllがない、と表示され、ダウンロードしたファイルが動作しない 2 2023/03/27 11:05
- オープンソース Coinmarketcap api 1 2022/05/30 15:47
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
このQ&Aを見た人はこんなQ&Aも見ています
-
DLLやOCXなどの格納先は必ず「C:\\WINDOWS\\system32」?
Windows Vista・XP
-
VB.netでDLLを読み込んで実行する際に、スタックを不安定にしていますというエラーが出ます。
Visual Basic(VBA)
-
DLL参照時に指定されたモジュールが見つかりません。(HRESULT からの例外 0x8007007E) が発生してしまう。
C言語・C++・C#
-
-
4
regsvr32で登録された一覧を知りたい
UNIX・Linux
-
5
英語【Schedule】の省略はありますか?又、英単語を省略する時のポイントはありますか?
TOEFL・TOEIC・英語検定
-
6
VB.NETで、DLLを頂いたんですが・・
Visual Basic(VBA)
-
7
CloseとDisposeの違い
Visual Basic(VBA)
-
8
.NETアプリを作ったときの .manifest ファイルって必要なの
C言語・C++・C#
-
9
VB6.0で、DLLを動的に参照したい
Visual Basic(VBA)
-
10
「タイプ初期化子が例外をスローしました」エラー何?
Visual Basic(VBA)
-
11
Excelのテーマのフォントが変わらない
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
Windows Python初心者です。 im...
-
C ファイル出力で、フォルダが...
-
VBAでファイル名を指定して保存...
-
バッチファイル フォルダを...
-
会社のネットワーク上のファイ...
-
ThisWorkbookがあるフォルダ更...
-
VBA 最新のフォルダ取得
-
【マクロ】ファイル名の日付に...
-
バッチファイル作成について
-
エクセルVBA ファイル名とタイ...
-
(C#)フォルダを指定するダイ...
-
サーバ内のフォルダ名と各フォ...
-
VB6でのドラッグ&ドロップにつ...
-
【コマンドプロンプト】名前順...
-
VBScriptでのフォルダ指定ダイ...
-
カレントフォルダって?
-
エクセル VBA Filename:=Left(T...
-
フォルダ参照ダイアログAPIをVB...
-
MinGWで正規表現(regex.h)がし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
会社のネットワーク上のファイ...
-
ファイル名と同名のフォルダを...
-
デスクトップの画像をhtmlに表...
-
VBA 最新のフォルダ取得
-
VBA フォルダ名に特定の文字を...
-
Access VBA で フォルダ権限...
-
ディレクトリ名変更してコピー...
-
excelマクロ 冒頭3文字が一致す...
-
Excelで指定したフォルダに保存...
-
パス名に2バイト文字(マルチバ...
-
ExcelのVBAでフォルダ指定がで...
-
excel VBA Dirにて検索したフォ...
-
【マクロ】ファイル名の日付に...
-
VBA フォルダの複数選択ができない
-
Excelのハイパーリンクについて...
-
あるフォルダーのファイルを違...
-
C ファイル出力で、フォルダが...
-
フォルダを開いて、閉じるのプ...
-
ThisWorkbookがあるフォルダ更...
おすすめ情報