C ++ win32 загружает строки из ресурса

Хорошо, я недавно принял решение поместить каждую строку в моем приложении в STRINGTABLE, чтобы я мог легко переводить на разные языки. Я знаю, как использовать API LoadString (), но для этого у меня есть разные переменные для каждой строки, которую я хочу загрузить, и если в моем приложении 100 строк, то это много переменных. Это лучший способ сделать это? Или мне следует создать глобальную переменную, которая будет использоваться в качестве буфера для загрузки строк по мере необходимости? Кроме того, поскольку нет способа узнать, насколько велика моя строка, следует ли мне просто создать достаточно большой буфер для хранения любой строки, которую я могу иметь, или есть лучший способ сделать это?

Также загружает строки по мере необходимости плохо за производительность? Можно ли как-нибудь предварительно загрузить их?

RE: Хорошо, я попытался создать буфер размером 256 байт и загрузить в него строки по мере необходимости, хотя у меня возникла небольшая проблема ...

Вот мой код, отображающий сообщение об ошибке, ошибка: «Ошибка выделения памяти!»

LoadString(g_hInst, IDS_ERROR_MEMORY, szBuffer, sizeof(szBuffer)/sizeof(TCHAR));
MessageBox(NULL, szBuffer, TEXT("Error"), MB_OK | MB_ICONERROR);
ExitProcess(1);

У меня буфер как глобальная переменная: TCHAR szBuffer [256];

Это работает, но мне нравится сохранять текст «Ошибка» в таблице строк и загружать его, когда я хочу отобразить ошибку, проблема в том, что мне потребовалось бы иметь 2 глобальные переменные для загрузки строк, и есть некоторые места, где мне нужно загружать даже больше, чем это за раз.

Есть ли лучшее решение, чем наличие нескольких глобальных переменных?

7
задан Josh 20 May 2011 в 18:11
поделиться