正在从DLL获取函数PTR

本文关键字:函数 PTR 获取 DLL | 更新日期: 2023-09-27 18:26:15

我正试图将dll注入到我的当前进程中,以找到不同函数的偏移量。

我的dll中有一个简单的函数,看起来像这样:

void testfunction()

我正试图通过C#应用程序获取ptr函数。

    public IntPtr GetFunctionPointer()
    {
        IntPtr hLoaded = LoadLibrary("C:''test''test.dll");
        IntPtr functionPtr = GetProcAddress(hLoaded, "testfunction");

        return functionPtr;
    }

函数ptr每次都返回0,即使该函数存在于dll中。如有任何帮助,我们将不胜感激。

正在从DLL获取函数PTR

函数在DLL的导出表中没有命名为testfunction,它已被类型信息破坏。所以GetProcAddress找不到它。(P/invoke DllImportAttribute尝试了一系列名称,这些名称可能找到……也可能找不到。但GetProcAddress需要完全匹配。)

为了导出一个完全没有损坏的函数,您需要使用extern "C"减少函数名称的损坏,然后使用模块定义文件进行链接。类似于:

LIBRARY test
EXPORTS
testfunction

有关完整信息,请参阅MSDN文档