• 调用Dll 中的函数


    http://blog.csdn.net/very_2/article/details/6534915

    #ifdef __cplusplus
    extern "C" {
    #endif
    _declspec (dllexport) int add(int a, char b)
    {
    return a + b;
    }
    _declspec (dllexport) BOOLEAN CosClient_hook(int a, char b) {

    hlog("fuck_begin");
    wchar_t name[MAX_PATH];

    //dll_inst = hinst;

    HANDLE cur_thread;
    bool success = DuplicateHandle(GetCurrentProcess(),
    GetCurrentThread(),
    GetCurrentProcess(), &cur_thread,
    SYNCHRONIZE, false, 0);

    if (!success)
    DbgOut("Failed to get current thread handle");

    if (!init_signals()) {
    return false;
    }
    if (!init_system_path()) {
    return false;
    }
    if (!init_hook_info()) {
    return false;
    }
    if (!init_mutexes()) {
    return false;
    }

    /* this prevents the library from being automatically unloaded
    * by the next FreeLibrary call */
    //GetModuleFileNameW(hinst, name, MAX_PATH);
    //LoadLibraryW(name);

    capture_thread = CreateThread(NULL, 0,
    (LPTHREAD_START_ROUTINE)My_capture_thread,
    (LPVOID)cur_thread, 0, 0);
    if (!capture_thread) {
    CloseHandle(cur_thread);
    return false;
    }
    return true;
    }

    #ifdef __cplusplus
    }
    #endif


    HMODULE hModule = NULL;
    typedef int(*Func)(int a, int b);

    hModule = LoadLibrary(_TEXT( "E:/Test/graphics-hook32.dll" ));
    Func fAdd = (Func)GetProcAddress(hModule, "add");
    int ans = fAdd(5, 2);
    debug(ans);

    Func fCosHook = (Func)GetProcAddress(hModule, "CosClient_hook");
    BOOLEAN res = fCosHook(1,2);
    debug(res);

  • 相关阅读:
    xilinx下载器,JTAG-HS3和Platform Cable USB II 速度对比
    LATTICE下载器HW-USBN-2B使用说明
    altera下载器高速版本 PL-USB2-BLASTER 使用说明
    FPGA流程设计
    关于fpga的后仿真重要性
    使用MyBatis分页插件PageHelper遇到的问题
    java 面试题总结01
    netty Demo
    netty 概念篇
    pom.xml 简述
  • 原文地址:https://www.cnblogs.com/clover-xuqi/p/8316635.html
Copyright © 2020-2023  润新知