Duplicate Function - Linker Error LNK2005
-
I have been racking my brain trying to figure out how to resolve a duplicate function error (LNK2005) and have been unsuccessful. I have followed direction on the following link as well: http://msdn.microsoft.com/en-us/library/72zdcz6f(v=VS.80).aspx Attached is a printscreen of where the error occurs. The following are issues I have come across: 1. One thing I noted in the output build report is that after invoking the linker with LINK.exe, one of the linker parameters that prints is /incremental:no, though when I look under Solution Explorer\Properties\Configuration Properties\Linker\General\Enable Incremental Linking the setting is Yes(/Incremental). Is there a setting somewhere that is causing an over-ride of the setting? I have done a build/clean for the project. 2. I have specified under Solution Explorer\Properties\Configuration Properties\Linker\Input\Ignore Specific Library the mfcs90ud.lib file. I added it back as an additional dependency. Though I still have problems with this lib file.
// MetaDLL_5.cpp : Defines the initialization routines for the DLL.
//
#pragma once#define WIN32_LEAN_AND_MEAN
//#define _AFXDLL//#include #include "stdafx.h"
#include "MetaDLL_6.h"
#using using namespace System;
using namespace System::Globalization;
using namespace System::Runtime::InteropServices;
using System::String;#define MT4_EXPFUNC __declspec(dllexport)
#pragma managed
String *ansi_to_managed(char *date_time)
{
return Marshal::PtrToStringAnsi(date_time);
}#pragma unmanaged
BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
return TRUE;
}#pragma managed
MT4_EXPFUNC void __stdcall gDateTime(char *date_time, int *year, int *month, int *day, int *hour, int *minute, int *second, int *millisecond)
{//String \*myDateTimeValue = ansi\_to\_managed(date\_time); String \*myDateTimeValue = S"02/16/1992 12:15:12.253"; String \*expectedFormats\[\] = {S"MM/dd/yyyy HH:mm:ss.FFF"}; IFormatProvider\* culture = new CultureInfo(S"en\_US", true); DateTime myDateTime = DateTime::ParseExact(myDateTimeValue, expectedFormats, culture, DateTimeStyles::AssumeLocal); \*year = myDateTime.Year; \*month = myDateTime.Month; \*day = myDateTime.Day; \*hour = myDateTime.Hour; \*minute = myDateTime.Minute; \*second = myDateTime.Second; \*millisecond = myDateTime.Millisecond; }
-
I have been racking my brain trying to figure out how to resolve a duplicate function error (LNK2005) and have been unsuccessful. I have followed direction on the following link as well: http://msdn.microsoft.com/en-us/library/72zdcz6f(v=VS.80).aspx Attached is a printscreen of where the error occurs. The following are issues I have come across: 1. One thing I noted in the output build report is that after invoking the linker with LINK.exe, one of the linker parameters that prints is /incremental:no, though when I look under Solution Explorer\Properties\Configuration Properties\Linker\General\Enable Incremental Linking the setting is Yes(/Incremental). Is there a setting somewhere that is causing an over-ride of the setting? I have done a build/clean for the project. 2. I have specified under Solution Explorer\Properties\Configuration Properties\Linker\Input\Ignore Specific Library the mfcs90ud.lib file. I added it back as an additional dependency. Though I still have problems with this lib file.
// MetaDLL_5.cpp : Defines the initialization routines for the DLL.
//
#pragma once#define WIN32_LEAN_AND_MEAN
//#define _AFXDLL//#include #include "stdafx.h"
#include "MetaDLL_6.h"
#using using namespace System;
using namespace System::Globalization;
using namespace System::Runtime::InteropServices;
using System::String;#define MT4_EXPFUNC __declspec(dllexport)
#pragma managed
String *ansi_to_managed(char *date_time)
{
return Marshal::PtrToStringAnsi(date_time);
}#pragma unmanaged
BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
return TRUE;
}#pragma managed
MT4_EXPFUNC void __stdcall gDateTime(char *date_time, int *year, int *month, int *day, int *hour, int *minute, int *second, int *millisecond)
{//String \*myDateTimeValue = ansi\_to\_managed(date\_time); String \*myDateTimeValue = S"02/16/1992 12:15:12.253"; String \*expectedFormats\[\] = {S"MM/dd/yyyy HH:mm:ss.FFF"}; IFormatProvider\* culture = new CultureInfo(S"en\_US", true); DateTime myDateTime = DateTime::ParseExact(myDateTimeValue, expectedFormats, culture, DateTimeStyles::AssumeLocal); \*year = myDateTime.Year; \*month = myDateTime.Month; \*day = myDateTime.Day; \*hour = myDateTime.Hour; \*minute = myDateTime.Minute; \*second = myDateTime.Second; \*millisecond = myDateTime.Millisecond; }
OK, I give up, what error did you get?
Unrequited desire is character building. OriginalGriff I'm sitting here giving you a standing ovation - Len Goodman