0

使用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++ことをした場合、エラーなしで動作するので、何が問題なのかわかりません!!!

4

1 に答える 1

0

リンカは、関数がundefinedであることを示しており、それは正しいです。関数の定義を書いていません。あなたはそれを宣言しただけです。

関数の後にいくつかの中括弧を置き、その関数に何をさせたいかをコンパイラに伝えます:

static HINSTANCE WINAPI Mysnprintf(char* str, int len, const char* format, ...)
{
  ...
}
于 2012-07-12T00:43:22.973 に答える