Не могу обойтись из-за ошибки «DllMain уже определен»

Я пытаюсь написать библиотеку .dll для инъекций .dll. И из-за этого у него должна быть процедура под названием DllMain, поскольку она будет использоваться в качестве точки входа. Я думаю, что моя проблема может быть связана с тем, что я подключаюсь к написанной мною статической библиотеке, которая использует потоки и мьютексы из afxmt.h. Потому что где-то в дальнейшем включение этого заставляет компоновщик ссылаться на mfcs100ud.lib, который, по-видимому, содержит свою собственную версию DllMain.

Вот файл, который вызывает у меня проблемы:

dllmain.cpp

#include "stdafx.h"
#include <stdio.h>
#include "NamedPipeLogger.h"

static CNamedPipeLogger m_PipeLogger("Log.txt");

BOOL APIENTRY DllMain(HANDLE hModule, 
                      DWORD  ul_reason_for_call, 
                      LPVOID lpReserved)
{
}

Вот файл stdafx.h, который включает dllmain.cpp.

stdafx.h

#pragma once

#define _AFXDLL
#include <Afx.h>

#include "targetver.h"

#define WIN32_LEAN_AND_MEAN             // Exclude rarely-used stuff from Windows headers

Вот мое сообщение об ошибке:

Ошибка 32, ошибка LNK2005: _DllMain @ 12 уже определено в dllmain.obj D: \ xxxxx \ xxxxx \ xxxxxx \ mfcs100ud.lib (dllmodul.obj)

Я просто облажался, потому что не могу изменить имя моей точки входа Dll на другое имя, кроме DllMain?

6
задан ssube 7 February 2012 в 21:48
поделиться