dll里的函数:
void WINAPI TestParam (const string& name, const string& psword)
{
if (0 == name.compare ("Adams") && 0 == psword.compare ("111111"))
{
printf ("input correct!\n");
}
else
{
printf ("input incorrect!\n Please input again.\n");
}
}
QT程序中的调用函数:
typedef void (WINAPI *Test_API) (const std::string& name, const std::string& psWord);
QLibrary lib ("Test");
if (!lib.load ())
{
QMessageBox::about (0, "Test", "Not load");
}
Test_API test_api = (Test_API) lib.resolve ("TestParam");
Q_ASSERT (test_api);
第一中方式:
const std::string na = "Adams";
const std::string ps = "111111";
test_api (na, ps);
第二中方式:
QString name ("Adams");
QString psWd ("111111");
const std::string na = name.toStdString();
const std::string ps = psWd.toStdString();
test_api (na, ps);
这两种方式的调用都得不到正确的结果。
请问QString转换到string出错了没?