У меня проблема, что в приведенном ниже коде «QSslCertificate :: fromPath» не находит указанный мной файл, но когда я его проверю с функцией fileExists ниже, он сообщает мне, что файл существует в конце концов. Эта проблема возникает только при попытке запуска моего приложения на ПК, отличном от моего компьютера разработки. Я разрабатываю Windows 10 64 бит, тестовый ПК - это Windows 7 64 бит. Я использую QT 5.4.0. Что я делаю не так?Qt: QSslCertificate :: fromPath не находит мой файл, но QFileInfo находит его
void MyClass::init()
{
// ... some other init code
QLatin1String rootCApath = QLatin1String("./ssl/rootCA.crt");
if (fileExists(rootCApath))
log("File exists"); // This is just a log function for displaying messages in the GUI.
else
log("File doesn't exist");
static QList<QSslCertificate> cert = QSslCertificate::fromPath(rootCApath);
if(cert.size()==1)
{
ssl_configuration.setCaCertificates(cert);
m_webSocket.setSslConfiguration(ssl_configuration);
}
else
{
QString s = "Server certificate not found. Size is " + QString::number(cert.size());
log(s);
}
}
bool MyClass::fileExists(QString path) {
QFileInfo check_file(path);
// check if file exists and if yes: Is it really a file and no directory?
return check_file.exists() && check_file.isFile();
}
редактировать: И когда я прочитал сертификат в QByteArray и передать, что один на, то мой подключения функция ничего не делает на этом ПК Windows 7, в то время как на моем Windows, 10 Developer PC все еще работает отлично ,
Также есть еще один ПК, который последовательно дает мне ошибки установления связи TLS, независимо от того, что я делаю. 3 ПК, 3 результата, это так удручает.
К сожалению, это не помогло, независимо от того, установлен ли QDir для QCoreApplication :: applicationDirPath(). – Alex