Visual c++ 我们还在继续

Visual c++ 我们还在继续,visual-c++,linker,Visual C++,Linker,我正在尝试解决一个未解决的外部问题(link2019错误)。已经有一些关于这个问题的帖子,我尝试过,但我仍然无法解决 这个错误是由我的CreateFtdcMdApi函数引起的(对吗?),但我的理解是这已经“解决了” 错误: 如果这是您的全部代码,那么编译器是正确的。或者您在哪里看到CThostFtdcMdApi::CreateFtdcMdApi的实现?因为它是一个已经实现和构建的api,所以我在项目中添加了它的库(静态库)和dll。所以我想我链接lib文件和dll的方式可能有问题。我猜你是在链接

我正在尝试解决一个未解决的外部问题(link2019错误)。已经有一些关于这个问题的帖子,我尝试过,但我仍然无法解决

这个错误是由我的CreateFtdcMdApi函数引起的(对吗?),但我的理解是这已经“解决了”

错误:


如果这是您的全部代码,那么编译器是正确的。或者您在哪里看到CThostFtdcMdApi::CreateFtdcMdApi的实现?因为它是一个已经实现和构建的api,所以我在项目中添加了它的库(静态库)和dll。所以我想我链接lib文件和dll的方式可能有问题。我猜你是在链接导出64位指针的库(无论出于什么原因)。导出的符号是
?CreateFtdcMdApi@CThostFtdcMdApi@@SAPEAV1@PEBD_N1@Z
(注意区别,指针被标记为
\uuu ptr64
),因此出现链接错误。解决方案是使用带有32位指针(?)的库,或者要求开发人员解决此问题。您是对的!我将原始项目的默认设置从32位更改为64位,链接问题消失了。谢谢!
// testTraderApi.cpp : 定义控制台应用程序的入口点。  
//  
#include "MdSpi.h"  
#include <iostream>
// UserApi对象  
CThostFtdcMdApi* pUserApi = NULL;

// 配置参数  
char FRONT_ADDR[] = "tcp://asp-sim2-md1.financial-trading-platform.com:26213";      // 前置地址  
TThostFtdcBrokerIDType  BROKER_ID = "***";              // 经纪公司代码  
TThostFtdcInvestorIDType INVESTOR_ID = "0***";          // 投资者代码  
TThostFtdcPasswordType  PASSWORD = "*****";         // 用户密码  
char *ppInstrumentID[] = { "***", "***" };            // 行情订阅列表  
int iInstrumentID = 2;                                  // 行情订阅数量  

// 请求编号  
int iRequestID = 0;

void main(void)
{
    // 初始化UserApi  
    char file = 'F';
    pUserApi = CThostFtdcMdApi::CreateFtdcMdApi();          // 创建UserApi  
    CThostFtdcMdSpi* pUserSpi = new CMdSpi();
    pUserApi->RegisterSpi(pUserSpi);                     // 注册事件类  
    pUserApi->RegisterFront(FRONT_ADDR);                 // connect  
    pUserApi->Init();

    pUserApi->Join();
    //  pUserApi->Release();  
}
class MD_API_EXPORT CThostFtdcMdApi
{
public:
    ///创建MdApi
    ///@param pszFlowPath 存贮订阅信息文件的目录,默认为当前目录
    ///@return 创建出的UserApi
    ///modify for udp marketdata
    static CThostFtdcMdApi *CreateFtdcMdApi(const char *pszFlowPath = "", const bool bIsUsingUdp=false, const bool bIsMulticast=false);

    ///获取API的版本信息
    ///@retrun 获取到的版本号
    static const char *GetApiVersion();
    }
 1>------ Build started: Project: challenges, Configuration: Debug Win32 ------
1>challenges.obj : error LNK2019: unresolved external symbol "public: static class CThostFtdcMdApi * __cdecl CThostFtdcMdApi::CreateFtdcMdApi(char const *,bool,bool)" (?CreateFtdcMdApi@CThostFtdcMdApi@@SAPAV1@PBD_N1@Z) referenced in function _main
1>d:\documents\visual studio 2013\Projects\challenges\Debug\challenges.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========