zoukankan      html  css  js  c++  java
  • 调用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);

  • 相关阅读:
    vue 使用echarts 柱状图使用图片显示
    Devexpress分组小计
    小写转大写
    预览打印
    LINQ
    结束任务管理器进程
    游标
    查看死锁
    sql 分页
    压缩解压缩传输的数据
  • 原文地址:https://www.cnblogs.com/clover-xuqi/p/8316635.html
Copyright © 2011-2022 走看看