Click here to Skip to main content
16,008,954 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
AnswerRe: socket trouble? [modified] Pin
Moak25-Jun-06 0:38
Moak25-Jun-06 0:38 
QuestionDoubt regarding hPrevInstance Pin
NiceNaidu21-Jun-06 22:52
NiceNaidu21-Jun-06 22:52 
AnswerRe: Doubt regarding hPrevInstance Pin
_AnsHUMAN_ 21-Jun-06 22:59
_AnsHUMAN_ 21-Jun-06 22:59 
GeneralRe: Doubt regarding hPrevInstance Pin
NiceNaidu21-Jun-06 23:13
NiceNaidu21-Jun-06 23:13 
GeneralRe: Doubt regarding hPrevInstance Pin
_AnsHUMAN_ 21-Jun-06 23:28
_AnsHUMAN_ 21-Jun-06 23:28 
AnswerRe: Doubt regarding hPrevInstance Pin
FarPointer21-Jun-06 23:03
FarPointer21-Jun-06 23:03 
AnswerRe: Doubt regarding hPrevInstance Pin
NiceNaidu21-Jun-06 23:23
NiceNaidu21-Jun-06 23:23 
Questionstatic member initialization order fiasco Pin
Tnarol21-Jun-06 22:51
Tnarol21-Jun-06 22:51 
Hi,

I think I experienced the issue described here with one of my classes :
http://www.parashift.com/c++-faq-lite/ctors.html#faq-10.15

I realized that my static member ConfigManager::ConfigFile isn't initialized when I first call a static member function ConfigManager::GetConfigString using it. Could you have a look at my code below and suggest something to avoid this. I'm not really happy with the solution from the faq because it uses "new" to create an object instance that I can't "delete" because my class is static (no destructor).

Thanks !

ConfigManager.h
<br />
#pragma once<br />
<br />
#define DEFAULT_PROFILE CString("C:\\default.ini")<br />
#define DEFAULT_INT -1<br />
#define DEFAULT_STRING CString("");<br />
<br />
class ConfigManager<br />
{<br />
public:<br />
    static CString GetConfigFile();<br />
    static void    SetConfigFile(CString& p);<br />
    static void    SetConfig(CString section, CString key, CString value);<br />
    static CString GetConfigString(CString section, CString key, CString def = DEFAULT_STRING);<br />
    static int     GetConfigInt(CString section, CString key, int def = DEFAULT_INT);<br />
	<br />
private:<br />
	static CString ConfigFile;<br />
};<br />


ConfigManager.cpp
<br />
#include "StdAfx.h"<br />
#include "ConfigManager.h"<br />
<br />
CString ConfigManager::ConfigFile = DEFAULT_PROFILE;<br />
<br />
void ConfigManager::SetConfig(CString section, CString key, CString value)<br />
{<br />
	WritePrivateProfileString(section, key, value, ConfigManager::ConfigFile);<br />
}<br />
<br />
CString ConfigManager::GetConfigString(CString section, CString key, CString def)<br />
{<br />
	CString result(_T(" "),512);<br />
	GetPrivateProfileString(section, key, def, result.GetBuffer(), 512, ConfigManager::ConfigFile);<br />
	result.ReleaseBuffer();<br />
	return result;<br />
}<br />
<br />
int ConfigManager::GetConfigInt(CString section, CString key, int def)<br />
{ <br />
	return GetPrivateProfileInt(section, key, def, ConfigManager::ConfigFile);<br />
}<br />
<br />
CString ConfigManager::GetConfigFile()<br />
{<br />
	return ConfigManager::ConfigFile;	<br />
}<br />
<br />
void ConfigManager::SetConfigFile(CString& p)<br />
{<br />
	ConfigManager::ConfigFile = p;<br />
}<br />

AnswerRe: static member initialization order fiasco Pin
Steve S21-Jun-06 22:54
Steve S21-Jun-06 22:54 
GeneralRe: static member initialization order fiasco Pin
Tnarol21-Jun-06 23:02
Tnarol21-Jun-06 23:02 
GeneralRe: static member initialization order fiasco Pin
Steve S22-Jun-06 0:19
Steve S22-Jun-06 0:19 
AnswerRe: static member initialization order fiasco Pin
Cedric Moonen21-Jun-06 23:28
Cedric Moonen21-Jun-06 23:28 
GeneralRe: static member initialization order fiasco Pin
toxcct21-Jun-06 23:36
toxcct21-Jun-06 23:36 
GeneralRe: static member initialization order fiasco Pin
Cedric Moonen21-Jun-06 23:40
Cedric Moonen21-Jun-06 23:40 
GeneralRe: static member initialization order fiasco Pin
toxcct21-Jun-06 23:43
toxcct21-Jun-06 23:43 
GeneralRe: static member initialization order fiasco Pin
Cedric Moonen21-Jun-06 23:50
Cedric Moonen21-Jun-06 23:50 
JokeRe: static member initialization order fiasco Pin
toxcct21-Jun-06 23:52
toxcct21-Jun-06 23:52 
GeneralRe: static member initialization order fiasco Pin
Tnarol22-Jun-06 1:06
Tnarol22-Jun-06 1:06 
GeneralRe: static member initialization order fiasco Pin
Cedric Moonen22-Jun-06 1:48
Cedric Moonen22-Jun-06 1:48 
GeneralRe: static member initialization order fiasco Pin
Tnarol22-Jun-06 1:57
Tnarol22-Jun-06 1:57 
AnswerRe: static member initialization order fiasco Pin
Weiye Chen22-Jun-06 0:18
Weiye Chen22-Jun-06 0:18 
GeneralRe: static member initialization order fiasco Pin
toxcct22-Jun-06 0:39
toxcct22-Jun-06 0:39 
GeneralRe: static member initialization order fiasco Pin
Tnarol22-Jun-06 1:09
Tnarol22-Jun-06 1:09 
AnswerRe: static member initialization order fiasco Pin
Ryan Binns22-Jun-06 1:39
Ryan Binns22-Jun-06 1:39 
GeneralRe: static member initialization order fiasco Pin
Tnarol22-Jun-06 2:08
Tnarol22-Jun-06 2:08 

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.