我有这个方法不是来自我。这里有人给了我。
void captureNewPictures(std::vector<Picture> &vecPicsOld, const tstring &dir)
我试图初始化这个“dir”变量但没有成功。我是C ++的初学者,整天看着所有可能的doc(或差不多:p)。有人可以解释我如何将字符串值传递给“dir”,关于tstring是由
定义的typedef std::basic_string <TCHAR> tstring ;
PS:我看到我可以将参考值删除为“dir&amp;”,这是一个问题吗? PS2:如果你有一个很好的文档解释字符串值及其相应的字段,这将非常非常好;)
答案 0 :(得分:3)
tstring
一直是这种类型的类型,因此您将获得ascii或Unicode字符串,具体取决于您的编译标记。
要初始化字符串,请执行以下操作:
tstring greeting = _T("hello, world");
_T
宏会将您的字符串转换为宽字符串,方法是在Unicode版本中使用L
作为前缀,否则会将其保留为常规的ascii字符串。
答案 1 :(得分:1)
类似的东西:
tstring yourString = _T("<your string here>");
captureNewPictures(yourVecPicsOld, yourString);
答案 2 :(得分:0)
我没有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");
}
在我的Mac OS X上使用GCC。以上是否适合您?你得到的确切错误是什么?