![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.1ベストアンサー
- 回答日時:
記法と内容の都合から,
・C# 2.0以上
・.NET Framework 2.0以上または.NET Compact Framework 2.0以上
を前提にします。
まず,属性の引数を実行時に変更する事はできないです。
そのため,DllImportAttributeでなんとかする,という方向性で解決する事は出来ません。
ただ,幸い引数と戻り値が同じ (呼び出し規約も同じ?) なので,Win32 APIとの組み合わせで処理できます。
1. LoadLibrary API,GetProcAddress API,FreeLibrary APIをDllImport属性付きで宣言する。
MSDN: LoadLibrary Function (Windows)
http://msdn.microsoft.com/en-us/library/ms684175 …
MSDN: GetProcAddress Function (Windows)
http://msdn.microsoft.com/en-us/library/ms683212 …
MSDN: FreeLibrary Function (Windows)
http://msdn.microsoft.com/en-us/library/ms683152 …
2. メソッドの型のデリゲートを用意する
3. LoadLibraryでDLLを読み込む
4. GetProcAddressで対象となる関数へのポインタを取得する
5. Marshal.GetDelegateForFunctionPointerで関数ポインタをデリゲートに変換する
MSDN: Marshal.GetDelegateForFunctionPointer メソッド (System.Runtime.InteropServices)
http://msdn.microsoft.com/ja-jp/library/system.r …
6. デリゲートを呼び出す
7. FreeLibraryでDLLを解放する
この回答への補足
ありがとうございます。
開発環境を書き忘れていました。
呼び元はC#2008で呼ばれるのはC(VC6.0でコンパイル)の
プログラムです。
この回答へのお礼
お礼日時:2009/08/31 10:36
それぞれの項目で出てくる単語が未知のものすぎて
何を書いたらいいのかさっぱりわかりません。
調べたら教えて頂いた内容が出てくるので
できそうな気配はします。
勉強してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- フリーソフト cygewf-2.dllがない、と表示され、ダウンロードしたファイルが動作しない 2 2023/03/27 11:05
- その他(プログラミング・Web制作) IT初心者です 仕事で、vb.netで作成されたdllをvbaで呼び出すプログラムを作成しろと言われ 1 2023/03/27 08:22
- Windows 10 IT初心者です! powershellで以下のようなエラーが出ました オブジェクト参照がオブジェクト 1 2023/05/17 11:30
- ノートパソコン .dllファイルがありませんと表示される 5 2023/04/30 03:03
- その他(コンピューター・テクノロジー) パソ粥が壊れてしまい。 新しく買ったパソコンに Amplitued5 Max をダウンロードインスト 1 2022/05/22 00:33
- Excel(エクセル) [Excel2016] 相関表等の自動作成 2 2022/08/01 20:34
- その他(OS) OBSが起動できません 3 2022/03/30 12:21
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- その他(ソフトウェア) MMD PMXエディタ プラグイン 押せない はじめまして。MMDについて質問させていただきます。 7 2022/05/04 15:53
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
同じソリューション内の別のプ...
-
"picture.jpg" の "picture" を...
-
VBAで一時中断したプログラムの...
-
getParameterで値が取得できず...
-
submitボタンにvalue属性の値で...
-
コネクション・セッション・ト...
-
UWSC
-
DataGridViewのチェックボック...
-
C#でドラッグ&ドロップが機能し...
-
Accessの画面更新を一時的に停...
-
ブラウザの×ボタン(閉じるボタ...
-
リンクでPOSTデータを送信する...
-
javascript 別ウィンドウを開...
-
JSPでメッセージボックスを表示...
-
CheckBoxをボタン形式にして押...
-
VB.netでボリュームレベルメー...
-
aspxをhtmlに変換する方法について
-
asp.NET初心者です。「 ’Contex...
-
セッションとコネクション
-
WebBrowserを初期化
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
同じソリューション内の別のプ...
-
実行時にコントロールのイベン...
-
バイナリーデータを16進数に...
-
EXCEL VBAをWEB上で実行し...
-
Accessの画面更新を一時的に停...
-
c# 文字列の最後から1文字削除...
-
DataGridViewのチェックボック...
-
コネクション・セッション・ト...
-
HTMLボタンの文字色を変え...
-
getParameterで値が取得できず...
-
Q&Aフォームを作成したいのです...
-
VBAで一時中断したプログラムの...
-
asp.NET初心者です。「 ’Contex...
-
submitボタンにvalue属性の値で...
-
複数選択のListBoxでClickイベ...
-
グリッドビューでのチェックボ...
-
SPREADでカーソルの位置を1行目...
-
aspxをhtmlに変換する方法について
-
Webページ上のボタン等の位置を...
-
リンクでPOSTデータを送信する...
おすすめ情報