掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
DLLファイルのパスが固定でないネイティブDLLを使用したい (ID:141603)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ご回答ありがとうございました。 以下のサイトも参考にGetProcAddressまでは、 完了できたと思います。 GetProcAddressの引数に設定するのは、関数名だったのですね。 http://www.misuzilla.org/docs/net/dynamic-pinvoke ただそのあとのデリゲートの処理がうまく理解できませんでした。 デリゲートを定義するところまでは、できたのですが、 GetDelegateForFunctionPointerの第2引数に 返されるデリゲートの型を正しく設定できていないようなのです。 大変お手数ではございますが、 どのように記載したら良いか教えて頂けませんか? 以上、よろしくお願いいたします。 Imports System.Runtime.InteropServices Public Class Form1 'DLLモジュールをマップ <DllImport("kernel32")> _ Private Shared Function LoadLibrary( _ ByVal lpLibFileName As String) As Integer End Function '関数のアドレスを取得 <DllImport("kernel32")> _ Private Shared Function GetProcAddress( _ ByVal hModule As Integer, ByVal lpProcName As String) As Integer End Function Delegate Sub SampleMethod(ByVal a As Integer) Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim dllName As String = "C:\Sample.dll" Dim funcName As String = "SampleMethod" Dim funcaddr As Integer 'DLLをロード Dim hmod As Integer = LoadLibrary(dllName) '関数のアドレスを取得 funcaddr = GetProcAddress(hmod, funcName) Dim method As SampleMethod method = Marshal.GetDelegateForFunctionPointer(funcaddr, SampleMethod) End Sub End Class
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.