2017-05-07 14 views
0

IB API C++トピックにはいくつかの回答がありますが、必要なものを特定できませんでした。 私は、コンソール経由でC++ APIを通じてTWSに接続するのに苦労しています。最も簡単なレベルでリンクするために、インターフェイスは必要ありません。インタラクティブブローカーAPI C++コンソール非常に基本的なもの

私は、次のコードをしようとしています:私はコンパイルしました

#include "EWrapper.h" 
#include "EClientSocket.h" 
#include "textbook_classes_.h" 
//in textbook_classes_.h/.cpp I have EWrapper inheritance with 
//required funcs overriding, 
//those I keep empty (ie: 
// void test_EWrapper::tickPrice(TickerId tickerId, TickType field, 
// double price, int canAutoExecute) {} 


int main() 
{ 
IB::test_EWrapper client; 
IB::test_EWrapper* ptr_client = new IB::test_EWrapper(client); 

EClientSocket test_socket(ptr_client); 

test_socket.eConnect("", 7497, 0, false); //my port is 7497 

delete ptr_client; 
ptr_client = nullptr; 

return 0; 
} 

エラー:

CMakeFiles\tws_san_.dir/objects.a(main.cpp.obj): In function `main': 
C:/Users/solovyev.an/Documents/Cpp/tws_san_/main.cpp:15: undefined 
reference to `EClientSocket::EClientSocket(EWrapper*)' 
C:/Users/solovyev.an/Documents/Cpp/tws_san_/main.cpp:17: undefined 
reference to `EClientSocket::eConnect(char const*, unsigned int, int, bool)' 
C:/Users/solovyev.an/Documents/Cpp/tws_san_/main.cpp:15: undefined 
reference to `EClientSocket::~EClientSocket()' 
C:/Users/solovyev.an/Documents/Cpp/tws_san_/main.cpp:15: undefined 
reference to `EClientSocket::~EClientSocket()' 
CMakeFiles\tws_san_.dir/objects.a(textbook_classes_.cpp.obj): 
In function `ZN2IB13test_EWrapperC2Ev': 
C:/Users/solovyev.an/Documents/Cpp/tws_san_/textbook_classes_.cpp:26: 
undefined reference to `EClientSocket::EClientSocket(EWrapper*)' 
collect2.exe: error: ld returned 1 exit status 

CMakeFiles\tws_san_.dir\build.make:123: recipe for target 'tws_san_.exe' failed 
CMakeFiles\Makefile2:66: recipe for target 'CMakeFiles/tws_san_.dir/all' failed 
mingw32-make.exe[3]: *** [tws_san_.exe] Error 1 
mingw32-make.exe[2]: *** [CMakeFiles/tws_san_.dir/all] Error 2 
mingw32-make.exe[1]: *** [CMakeFiles/tws_san_.dir/rule] Error 2 
CMakeFiles\Makefile2:78: recipe for target 'CMakeFiles/tws_san_.dir/rule' failed 
Makefile:117: recipe for target 'tws_san_' failed 
mingw32-make.exe: *** [tws_san_] Error 2 

私はこの非常に基本的なことについて助言に感謝を。

PS私はC++ API用の2つの非常に人気のユーザーが開発したオプションがあります知っている

https://github.com/rudimeier/twsapi

https://github.com/JanBoonen/TwsApiCpp

しかし、彼らはと私のWin-のマシンで飛ぶことはありません。よく

+0

*「IB API C++のトピック」*これは何ですか?あなたは何について話していますか?この質問には文脈が必要です。私はAPIが何であるかを知っていますが、あなたがそれを使用する方法には意味がありません。私はIBが何であるか分かりません。 –

+0

@Cody Grey "IB API"に加えて、 "TWS"もありますが、これもあなたには馴染みがないかもしれません。 IBはインタラクティブブローカー、TWSはトレーダーワークステーションを意味します。 –

+0

あなたはどのIDEとOSを使用していますか? – dmaelect

答えて

0

複雑な物語があるようです。
1最新バージョンのAPIを入手する方が良いです(真剣に、昨日から)。
2 MS関連の宣言を削除するためにIBString.hを手動で修正する可能性があるにもかかわらず、VS IDEでコンパイルする方がよいです。
3 2015 VSツールセットでコンパイルすることはできません。代わりに2012を使用してください。
4いくつかのオブジェクトを最初から作成するだけで簡単にインスタンスを作成することはできません。あなたが必要としないものを元のIBファイルから切り離す方が良いでしょう。
@dmaelectあなたの貢献に感謝します。

0

IB API C++製品と公正な関係があります。
MacOS版のC++ APIをダウンロードして試しました。それはCLion IDEでした。 APIはスイス時計のように正確に、静かに、正確に動作します。私は契約の詳細と市場データを取得するために費やした5分以内に接続するという問題を解決しました。
私の結論 - VSとMS固有のIB APIは避けてください。

関連する問題