Click here to Skip to main content
15,909,193 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
AnswerRe: gdi+ example ? Pin
Hamid_RT22-Jan-07 5:46
Hamid_RT22-Jan-07 5:46 
Questionabout a = b | c | ... Pin
HOW WHAT21-Jan-07 2:50
HOW WHAT21-Jan-07 2:50 
AnswerRe: about a = b | c | ... Pin
Gary R. Wheeler21-Jan-07 3:02
Gary R. Wheeler21-Jan-07 3:02 
GeneralRe: about a = b | c | ... Pin
HOW WHAT21-Jan-07 3:19
HOW WHAT21-Jan-07 3:19 
GeneralRe: about a = b | c | ... Pin
Gary R. Wheeler21-Jan-07 4:28
Gary R. Wheeler21-Jan-07 4:28 
AnswerRe: about a = b | c | ... Pin
CPallini21-Jan-07 3:37
mveCPallini21-Jan-07 3:37 
GeneralRe: about a = b | c | ... Pin
HOW WHAT21-Jan-07 3:57
HOW WHAT21-Jan-07 3:57 
GeneralRe: about a = b | c | ... Pin
CPallini21-Jan-07 4:55
mveCPallini21-Jan-07 4:55 
QuestionSome basic Qs abt MFC,VC++,SDK.... Pin
Sameer_Thakur21-Jan-07 1:01
Sameer_Thakur21-Jan-07 1:01 
AnswerRe: Some basic Qs abt MFC,VC++,SDK.... Pin
CPallini21-Jan-07 2:02
mveCPallini21-Jan-07 2:02 
AnswerRe: Some basic Qs abt MFC,VC++,SDK.... Pin
Gary R. Wheeler21-Jan-07 2:59
Gary R. Wheeler21-Jan-07 2:59 
AnswerRe: Some basic Qs abt MFC,VC++,SDK.... Pin
Christian Graus21-Jan-07 9:36
protectorChristian Graus21-Jan-07 9:36 
QuestionHow to convert value to string in c? Pin
Agbaria Ahmad21-Jan-07 1:00
Agbaria Ahmad21-Jan-07 1:00 
AnswerRe: How to convert value to string in c? Pin
Dominik Reichl21-Jan-07 1:21
Dominik Reichl21-Jan-07 1:21 
QuestionHow to get SQL stored procedure output / return code Pin
neilsolent20-Jan-07 21:59
neilsolent20-Jan-07 21:59 
QuestionHow to SetEvenRowStyle in truedbgrid control in run time? Pin
liur1720-Jan-07 19:38
liur1720-Jan-07 19:38 
QuestionCtrl+Double click message Pin
Max++20-Jan-07 14:39
Max++20-Jan-07 14:39 
AnswerRe: Ctrl+Double click message Pin
PJ Arends20-Jan-07 19:22
professionalPJ Arends20-Jan-07 19:22 
AnswerRe: Ctrl+Double click message Pin
prasad_som21-Jan-07 1:36
prasad_som21-Jan-07 1:36 
AnswerRe: Ctrl+Double click message Pin
prasad_som21-Jan-07 1:32
prasad_som21-Jan-07 1:32 
QuestionASF Writer Directshow Filter Pin
gigo2k620-Jan-07 12:29
gigo2k620-Jan-07 12:29 
QuestionLNK2005 and template class Pin
Nick Alexeev20-Jan-07 12:27
professionalNick Alexeev20-Jan-07 12:27 
Folks,

I've written a template tokenizer class. (BTW, code and the write-up about this class is posted here http://www.codeproject.com/useritems/TemplateTokenizer.asp[^].) All of the template class' code (declaration and implementation) resides in one *.h file. Everything compiles, links and runs just fine, when the template class header file is #included only in one *.cpp file. But when the header is included into 2 *.cpp files, I get the linker errors:

ParseCSV2.obj : error LNK2005: "protected: void __thiscall CStringTokenizer<class CStringArray>::Add(char const *)" (?Add@?$CStringTokenizer@VCStringArray@@@@IAEXPBD@Z) already defined in ParseCSV.obj
ParseCSV2.obj : error LNK2005: "protected: void __thiscall CStringTokenizer<class CStringList>::Add(char const *)" (?Add@?$CStringTokenizer@VCStringList@@@@IAEXPBD@Z) already defined in ParseCSV.obj
Debug/ParsingNMEA.exe : fatal error LNK1169: one or more multiply defined symbols found


The header file has both #ifndef and #pragma once

#ifndef STRINGTOKENIZER_H
#define STRINGTOKENIZER_H
#pragma once
[declaration+implementation] 
#endif // STRINGTOKENIZER_H


Template class headers contain the implementation. They are included into both descendents. Linker sees this as an error. From the linker's perspective, these errors make sense.

What can I do to fix this problem?

Thanks!
Nick

P.S. It seems like it could be a fairly common problem, but I couldn't find a solution on this forum or on the web.

P.P.S. I'm using VC++ 6
AnswerRe: LNK2005 and template class Pin
Michael Dunn20-Jan-07 15:20
sitebuilderMichael Dunn20-Jan-07 15:20 
GeneralRe: LNK2005 and template class Pin
Sceptic Mole21-Jan-07 0:03
Sceptic Mole21-Jan-07 0:03 
QuestionRe: LNK2005 and template class Pin
Nick Alexeev21-Jan-07 19:44
professionalNick Alexeev21-Jan-07 19:44 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.