未定义的对Mysnprintf的引用

时间:2012-07-12 00:33:00

标签: c++ codeblocks

正在使用CodeBlocks并尝试在

内创建一个钩子dll

DllMain

#include "main.h"
#include "Asm.h"
#include <stdio.h>
using namespace std;
    static HINSTANCE WINAPI Mysnprintf(char* str, int len, const char* format, ...);

    static void InitDll(){
        Originalsnprintf = (snprintfFn)GetProcAddress(GetModuleHandleA("msvcr90.dll"), "_snprintf");
        Asm code;
        code.JMP((int)Mysnprintf); // where JMP = Asm& JMP(int address){...}
    }

我不知道出了什么问题,因为如果我对Microsoft Visual C++做同样的事情,那么它将毫无错误地工作!!!

1 个答案:

答案 0 :(得分:0)

链接器告诉你函数是 undefined ,它是正确的。您还没有为您的函数编写定义。你只是宣布它。

在函数后面添加一些花括号,并告诉编译器你希望该函数做什么

static HINSTANCE WINAPI Mysnprintf(char* str, int len, const char* format, ...)
{
  ...
}