Подскажите почему QLibrary не находит библиотеку? Что здесь не правильно?
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QTime timer;
timer.start();
QLibrary lib("DynamicLib");
typedef void (*Meth)();
Meth readFile = (Meth)lib.resolve("readFile");
if (readFile)
readFile();
qDebug()<<"Time of dynamic library: "<<timer.elapsed()<<" msec"<<endl;
return a.exec();
}
Вот само тело библиотеки:
#include "dynamiclib.h"
DynamicLib::DynamicLib()
{
}
void DynamicLib::readFile()
{
QStringList stringList;
int values[100];
int result[100];
QFile textFile("D:/Data.txt");
if (textFile.open(QIODevice::ReadOnly))
{
QTextStream textStream(&textFile);
while (!textStream.atEnd())
{
stringList.append(textStream.readLine());
}
textFile.close();
}
for (int i=0; i<100; i++)
{
values[i] = stringList.value(i).toInt();
result[i] = values[i]*values[i];
values[i] = result[i];
}
if (textFile.open(QIODevice::WriteOnly))
{
QTextStream out(&textFile);
for (int i=0; i<100; i++)
{
out<<values[i]<<endl;
}
textFile.close();
}
}
Примечание:
Библиотеку находит, но не могу вытянуть с нее метод :(
Примечание:
Ну у меня заголовки сделаны так
//dynamiclib.h
#ifndef DYNAMICLIB_H
#define DYNAMICLIB_H
#include "DynamicLib_global.h"
#include <QFile>
#include <QDebug>
#include <QStringList>
class DYNAMICLIBSHARED_EXPORT DynamicLib {
public:
DynamicLib();
void readFile();
};
#endif // DYNAMICLIB_H
//DynamicLib_global.h
#ifndef DYNAMICLIB_GLOBAL_H
#define DYNAMICLIB_GLOBAL_H
#include <QtCore/qglobal.h>
#if defined(DYNAMICLIB_LIBRARY)
# define DYNAMICLIBSHARED_EXPORT Q_DECL_EXPORT
#else
# define DYNAMICLIBSHARED_EXPORT Q_DECL_IMPORT
#endif
#endif // DYNAMICLIB_GLOBAL_H
Если подключать статически в файле .pro (LIBS += "D:/Tester/debug/DynamicLib.dll"), то все нормально работает.
Примечание:
Разобрался - изменил dynamiclib.h:
#ifndef DYNAMICLIB_H
#define DYNAMICLIB_H
#include "DynamicLib_global.h"
#include <QFile>
#include <QDebug>
#include <QStringList>
class DYNAMICLIBSHARED_EXPORT DynamicLib {
public:
DynamicLib();
};
extern "C" DYNAMICLIBSHARED_EXPORT void readFile();
#endif // DYNAMICLIB_H
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.