使用qt写了一个简单的动态链接库,编译也成功,代码如下:
—————————savedll.cpp———————————
#include <iostream>
#include <QApplication>
using namespace std;
extern "C" __declspec(dllexport) int ShowMessageBox()
{
char *str = "this is Dll";
cout<<str;
return 0;
}
——————————————————————————
.pro配置文件如下:
######################################################################
# Automatically generated by qmake (2.01a) ??? ?? 7 16:20:50 2007
######################################################################
TEMPLATE = lib
TARGET =
DEPENDPATH += .
INCLUDEPATH += .
win32:CONFIG += console
# Input
SOURCES += savedll.cpp
++++++++++++++++++++++++++++++++++++++++
然后使用VC调用动态库能成功的在控制台输出this is Dll字样。
然后在Qt下面我的调用不能成功
————————loaddll.cpp--------------
#include <QApplication>
#include <QLibrary>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
typedef int (*myPrototype);
myPrototype myFunction=(myPrototype)QLibrary::resolve("simple","ShowMessageBox");
if (myFunction)
myFunction();
return app.exec();
}
——------------------------
这个配置文件是默认。
能成功编译,但不能在控制台输出正确的信息,一直驻留在进程,应该如何做?