Я пытаюсь написать библиотеку .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?