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