Я определил в моих foo.h
следующих переменныхC++ Установка значений для членов структуры **
#define APILONG long
#define APIDOUBLE double
#define APISTRING const char*
А также следующую структуру
struct SetupData
{
APISTRING customerName;
APIDOUBLE quantity;
APILONG startDate;
};
Теперь в моем foo.cpp
я есть следующий метод, когда мне нужно назначать значения членам структуры, которые вытягиваются из файла .config
.
APILONG doSomething(APISTRING* setupOrder, APILONG* setupActive, struct SetupData** setupData)
{
//load config file
Config config("rommel.config");
//assign a string value to APISTRING* (No issue here.)
*setupOrder= config.pString("setupOrder").c_str();
//assign a value (No issue here, atleast not that I know of..)
*setupActive = config.pDouble("setupActive");
//assign values to members of struct**
(*setupData)->customerName = config.pString("setupDataCustomerName").c_str();
(*setupData)->quantity = config.pDouble("setupDataQuantity");
(*setupData)->startDate = config.pDouble("setupDataStartDate");
//do other stuff..
}
Когда я компилирую и перестраиваю, он не дает мне никаких сообщений об ошибках. Но когда я пытаюсь запустить настоящую программу, она сработает. (Я использую Dev-C++, Visual Studio вызывал проблемы ..) Однако у меня есть шанс увидеть значения, назначенные до того, как он сработает, и похоже, что значения не назначаются (нулевые или странные символы).
Я пробовал вариацию линии (*setupData)->startDate ..
, а также я попытался объявить структуры в методе, как в дальнейшем, но безрезультатно.
struct SetupData stpData;
*setupData = &stpData;
Любая помощь была бы принята с благодарностью. Ранее я опубликовал еще один вопрос, связанный с этим, он содержит также довольно полезную информацию. Я оставлю ссылку на случай, если это поможет. "C++ Set value for a char**"
Что возвращает 'config.pString'? Уверен, что это временная строка 'std :: string'. –
Во-первых, вам нужно исправить ваше правописание «ApiLongstocking». –
Зачем использовать '# define'? Что он добавляет? Просто делает код менее удобочитаемым –