QString name ("Adams");
QString psWd ("111111");
std::string uName = name.toStdString ();
std::string uPswod = psWd.toStdString ();
// std::string uName ((const char*) name.toLatin1 ().data ());
// std::string uPswod ((const char*) psWd.toLatin1 ().data ());
// std::string uName = (const char*) name.toLatin1 ().data ();
// std::string uPswod = (const char*) psWd.toLatin1 ().data ();
// std::string uName (name.toLatin1 ().data ());
// std::string uPswod (psWd.toLatin1 ().data ());
// std::string uName = name.toLatin1 ().data ();
// std::string uPswod = psWd.toLatin1 ().data ();
// std::string uName = name.toUtf8 ().data ();
// std::string uPswod = psWd.toUtf8 ().data ();
// std::string uName (name.toUtf8 ().data ());
// std::string uPswod (psWd.toUtf8 ().data ());
// std::string uName (name.toLocal8Bit ().data ());
// std::string uPswod (psWd.toLocal8Bit ().data ());
// std::string uName = (const char*) name.toLocal8Bit ().data ();
// std::string uPswod = (const char*) psWd.toLocal8Bit ().data ();
上面这些类型我都试过
在传递给dll里的函数前调用
printf ("uName = %s\n", uName .c_str ());
printf ("uPswod = %s\n", uPswod .c_str ());
这两个打印出来的是正确的
但是传递给dll里的函数
void WINAPI TestParam (const string& name, const string& psword)
{
printf ("name = %s\n", name.c_str ());
printf ("psword= %s\n", psword.c_str ());
}
打印出来的就是乱码,
也不知道是什么原因