Qt を使用して開発作業を行いたいと考えています。私はいくつかの小さなアプリを作成し、いくつかのチュートリアルに従いました。すべて順調で、まっすぐに見えます。
実行される開発には、win32 dll に含まれる既存のコードの使用が含まれます。このコードを最小限の手間で再利用し、Qt アプリにリンクしたいと考えています。ヘッダー、ライブラリ、および dll があるので、実行時に動的にリンクするのではなく、コンパイル時にリンクします。
私はこれをやろうとしましたが、Qt は常に次のようなリンク エラーで不平を言います: main.obj:-1: エラー: LNK2019: 未解決の外部シンボル _ imp _Add referenced in function _main
.pro ファイルをどのように調整しても、常に問題が発生します。
私は何時間もかけてグーグルで検索し、情報の断片を見つけました。物語全体を語る一つの答えを見つけることができませんでした。私が求めているのは一連の手順であり、従う必要があるチュートリアルのようなシーケンスです。Qt のインストール例にも例があるかもしれませんが、見つけることができませんでした。
これは、メインの開発に移るために作業を開始しようとしてきた単純な「ノックアップ」です。これは、MS チュートリアル dll MathsFunc に基づいています。
win32 dll:
// Visual Studio 2005
//Funcs.h
#ifdef MATHFUNCS_EXPORTS
#define MATHFUNCSDLL_API __declspec(dllexport)
#else
#define MATHFUNCSDLL_API __declspec(dllimport)
#endif
#ifdef __cplusplus
extern "C" { /* Assume C declarations for C++ */
#endif
// Returns a + b
MATHFUNCSDLL_API double Add(double a, double b);
#ifdef __cplusplus
} /* Assume C declarations for C++ */
#endif
//Funcs.cpp
#include "Funcs.h"
double Add(double a, double b)
{
return a + b;
}
dll をインポートする Qt アプリ。
//main.cpp
#include <QCoreApplication>
#include "../../mathfuncs/funcs.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
double dResult = Add(1.0,2.0);
printf("1 + 2 = %f\n",dResult);
return a.exec();
}
//Qt プロジェクト ファイル .por
#-------------------------------------------------
#
# Project created by QtCreator 2013-03-04T09:16:18
#
#-------------------------------------------------
QT += core
QT -= gui
TARGET = Useit
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
INCLUDEPATH += c:/tmp/mathfuncs
HEADERS += c:/tmp/mathfuncs
LIBS += c:/tmp/mathfuncs/MathFuncs.lib
ご意見をお寄せいただきありがとうございます。
D.