У меня есть этот метод, который не от меня. Кто-то здесь дал мне это.
void captureNewPictures(std::vector<Picture> &vecPicsOld, const tstring &dir)
И я попытался инициировать эту переменную «dir» без успеха. Я новичок в C ++ и весь день наблюдал за всеми возможными документами (или почти: p). Может кто-нибудь объяснить мне, как передать строковое значение в «dir», пожалуйста, в отношении tstring определяется как
typedef std::basic_string <TCHAR> tstring ;
PS: я видел, что я мог удалить ссылку на значение «dir&», это проблема для после?
PS2: Если у вас есть хороший документ, объясняющий строковые значения и соответствующие поля, это было бы очень здорово;)
tstring
Это были типы таким образом, так что вы получите строки ascii или Unicode в зависимости от ваших флагов компиляции.
Для инициализации строки сделайте что-то вроде этого:
tstring greeting = _T("hello, world");
_T
макрос преобразует вашу строку в широкую строку, добавив к ней префикс L
в сборке Unicode, в противном случае он останется обычной строкой ascii.
Что-то вроде:
tstring yourString = _T("<your string here>");
captureNewPictures(yourVecPicsOld, yourString);
У меня нет окна Windows, чтобы проверить это, но
#include <string>
#include <iostream>
typedef char TCHAR;
typedef std::basic_string<TCHAR> tstring;
void somefunc(const tstring &dir)
{
std::cout << dir << '\n';
}
int main()
{
tstring foo = "hello world";
somefunc(foo);
somefunc("goodbye world");
}
работает с GCC на моем Mac OS X box. Вышесказанное работает для вас? Какую именно ошибку вы получаете?