1

我正在尝试使用 Qt5.2.0 创建 ActiveX 服务器。根据我掌握的一些信息,要创建一个简单的 ActiveX 服务器(导出一个对象)就足够了:

  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's )

  3. 类应该继承QWidgetQAxBindable

  4. 应该有文件qaxserver.rc。就我而言,它的内容是1 TYPELIB "simpleServer.pro"

  5. 应该qaxserver.def有默认内容的 fie:

    ; 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 回答