1

Qt5.2.0 で ActiveX サーバーを作成しようとしています。私が持っているいくつかの情報によると、単純な ActiveX サーバー (1 つのオブジェクトをエクスポートする) を作成するには、次のようにすれば十分です。

  1. そのような.proファイルを持っています

    TEMPLATE = lib
    CONFIG  += dll axserver
    TARGET = simpleServer
    
    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
                                      QT += core
    RC_FILE = qaxserver.rc
    DEF_FILE = qaxserver.def
    
    HEADERS += myserver.h
    
    SOURCES += main.cpp
    SOURCES += myserver.cpp
    
  2. そのようなmain.cppファイルがあります

    #include "ActiveQt/QAxFactory"

    #include "myserver.h"

    QAXFACTORY_DEFAULT( MyServer, 5 つの ID )

  3. クラスは継承する必要がQWidgetあり、QAxBindable

  4. ファイルがあるはずですqaxserver.rc。私の場合、その内容は1 TYPELIB "simpleServer.pro"

  5. qaxserver.defデフォルトの内容のファイルがあるはずです:

    ; mfc_test.def : Declares the module parameters.
    
    EXPORTS
    
    DllCanUnloadNow      PRIVATE
    
    DllGetClassObject    PRIVATE
    
    DllRegisterServer    PRIVATE
    
    DllUnregisterServer  PRIVATE
    
    DumpIDL              PRIVATE
    

問題は、これら 5 つの名前が Visual Studio のリンカーに対して未定義であることです。問題を解決するには?

エラーは次のとおりです。

error LNK2001: unresolved external symbol DllCanUnloadNow
4

1 に答える 1

1

ファイルに追加する必要があり QT += axserverます.pro

于 2014-04-02T15:34:44.357 に答える