Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2012, 11:51   #1
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию GetPrivateProfileInt или злые силы

Вообщем, дело обстоит следующим образом, имеется что-то вроде следующего кода.

Код:
MyStruct.cpp

struct MyStruct
{
 MyStruct() 
 {
  this->InitializeMyStruct();
 };
 
 int i_Memb;

 InitializeMyStruct()
 {
  this->i_Memb = GetPrivateProfileInt("Captcha", "Content", 0, "..\\Data\\Path\\MyFile.ini");
 };
};
extern MyStruct SuperStruct;

Main.cpp

#include "MyStruct.h"

MyStruct SuperStruct;

int main()
{
 int iIndex = SuperStruct.i_Memb;
}
Дело в том что на 32-ух битной О.С. Windows Professional такой код работает без проблем, на 64-х битном Windows Server 2008 код работает не совсем корректно, а быть точнее GetPrivateProfileInt всегда возвращает его дефолтное значение по причине того что не может найти указанный файл, хотя в директории он присутствует. Повторюсь на Proffesional/Ultimate/Home Basic 32x работает отлично.

Вообщем что это за беда?

Последний раз редактировалось coNsept; 13.10.2012 в 11:54.
coNsept вне форума Ответить с цитированием
Старый 13.10.2012, 11:58   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Ваше приложение для х64 компилируется как х64 или как х32?
p51x вне форума Ответить с цитированием
Старый 13.10.2012, 12:44   #3
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

А вы перед этим вызовите GetCurrentDirectory(), сразу все поймете.
waleri вне форума Ответить с цитированием
Старый 13.10.2012, 14:35   #4
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Цитата:
Ваше приложение для х64 компилируется как х64 или как х32?
Я использую студию 2010 и она перед установкой автоматически определяет разрядность системы и устанавливает нужный компилятор, поэтому программа компилируется как X64.

Цитата:
А вы перед этим вызовите GetCurrentDirectory(), сразу все поймете.
Таким способом я обошел свою проблему, но хотелось бы понять истинную причину.

Последний раз редактировалось coNsept; 13.10.2012 в 14:37.
coNsept вне форума Ответить с цитированием
Старый 13.10.2012, 16:07   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
и она перед установкой автоматически определяет разрядность системы и устанавливает нужный компилятор, поэтому программа компилируется как X64.
Поржал. Ниодна студия так не делает, даже 2012.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тестирующая программа (на PHP или JavaScript или Delphi или Visual Basic) @@@Сергей@@@ Фриланс 2 05.05.2011 17:48
планирование рабочей силы в excel Mod Microsoft Office Excel 2 02.05.2010 14:07
Моделирование движения тела под действием силы тяжести AleSS Помощь студентам 11 27.01.2010 16:03
Моделирование движения тела под действием силы тяжести AleSS Помощь студентам 0 26.01.2010 16:45