none
如何通过GetProcAddress获得函数的MethodInfo RRS feed

答案

  • 那你应该知道函数参数什么类型
    参考http://www.codeproject.com/KB/dotnet/DynamicDllImport.aspx参考

    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2009年8月6日 2:06
    版主

全部回复

  • 你好你是通过C++来获取的吗? 我对C++不是很熟悉,你可以到C++版块问下如由函数指针获得Type
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年8月5日 6:58
    版主
  • 你好你是通过C++来获取的吗? 我对C++不是很熟悉,你可以到C++版块问下如由函数指针获得Type
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    我是通过VB.net调用windows API来获取的函数句柄.
    代码如下
        ''' <summary>
        ''' 获得函数指针
        ''' </summary>
        ''' <param name="lpFileName"> 包含需调用函数的 DLL 文件名</param>
        ''' <param name="lpProcName">调用函数的名称</param>
        ''' <remarks></remarks>
        Public Function LoadFunc(ByVal lpFileName As String, ByVal lpProcName As String) As IntPtr
            Me.hModule = LoadDll(lpFileName)
            If Me.hModule = IntPtr.Zero Then
                Throw New Exception("函数库模块的句柄为空 , 请确保已进行 LoadDll 操作 !")
            End If
    
            Dim farProc As IntPtr = GetProcAddress(hModule, lpProcName)
    
            If farProc = IntPtr.Zero Then
                Throw New Exception(" 没有找到 :" & lpProcName & " 这个函数的入口点 ")
            Else
                Return farProc
            End If
        End Function

    2009年8月5日 7:13
  • 无法转换。你应该联系DLL作者以获得函数类型。从DLL本身是看不出来的。

    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2009年8月5日 14:31
    版主
  • 无法转换。你应该联系DLL作者以获得函数类型。从DLL本身是看不出来的。

    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    我有DLL的全部源代码,我本来是想询问为什么在调用过程中,传址的参数没有得到新的值.
    后来1987raymond版主版主给我的例子中  是通过MethodInfo来实现定义局部变量并传送到堆栈.我于是提出了上面的问题.
    2009年8月6日 0:50
  • 那你应该知道函数参数什么类型
    参考http://www.codeproject.com/KB/dotnet/DynamicDllImport.aspx参考

    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2009年8月6日 2:06
    版主
  • 那你应该知道函数参数什么类型
    参考http://www.codeproject.com/KB/dotnet/DynamicDllImport.aspx参考

    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP

    嗯 只要知道函数的所有参数的ParameterInfo就可以了  ParameterInfo[] parameters

    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年8月6日 2:31
    版主