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