nonultimate / CTPSharp

C# trade api library for CTP
Apache License 2.0
46 stars 31 forks source link

Expression:(L "Buffer is to small" && 0) #3

Closed LeePui closed 6 years ago

LeePui commented 6 years ago

我在执行CTPMarketApi.Tests中的测试用例时,登陆connect时会报这个错误。

nonultimate commented 6 years ago

是否复制了x86和amd64文件夹到Debug文件夹,并确认这两个文件夹下有以下dll:MdApi.dll、thostmduserapi.dll、thosttraderapi.dll、TradeApi.dll

LeePui commented 6 years ago

_api.OnFrontConnected += new MarketApi.FrontConnected(() => { _isConnected = true; _api.UserLogin(-3, _investor, _password); });

LeePui commented 6 years ago

想知道这个回调函数是否有问题,当我注释后就没有这个错误了。。

nonultimate commented 6 years ago

連接成功後調用登錄,沒什麼問題,你是否改過帳號或服務器地址

LeePui commented 6 years ago

是的呢,我修改过服务器地址和账号呢,请问这个有问题呢

nonultimate commented 6 years ago

用原始的試試是否正常

LeePui commented 6 years ago

是的,我使用原始的,不会报这个错误。为什么使用我自己的会报错呢?

LeePui commented 6 years ago

你好,我在ApiMain.cpp的ReqUserLogin函数中,将strcpy_s(req.BrokerID, brokerID); 改为了strcpy_s(req.BrokerID, strlen(brokerID) + 1, brokerID); 似乎问题就解决了。。

nonultimate commented 6 years ago

似乎是兼容性問題,按理說所有的strcpy_s都可能存在這個問題,可以改成你提的這種寫法

nonultimate commented 6 years ago

你用的哪個期貨交易所?

LeePui commented 6 years ago

你好,因为我用的是测试的账号,所以我们的brokeId并不规范呢,长度超过了11位。我将brokeId修改后就可以了呢。感谢你的帮助呢!