Join the 80,000 other DTN customers who enjoy the fastest, most reliable data available. There is no better value than DTN!

(Move your cursor to this area to pause scrolling)




"If you are serious about your trading I would not rely on IB data for serious daytrading. Took me a while to justify the cost of IQ Feed and in the end, it's just a 2 point stop on ES. Better safe than sorry" - Comment from Public Forum
"I noticed that ******* quotes locked up shortly after the interest rate announcement yesterday while yours stayed stable." - Comment from Ron in Utah
"Everything is working great ! Very impressive client. The news refreshes better and is more pertinent than the ******* feed I paid $ 100/month for. I Also like the charts a lot." - Comment from Leon
"I am very happy I changed. I love the product, but more so I am thrilled with Tech Support. You are knowledgeable, polite, pleasant and professional." - Comment from Pat
"I just wanted to say how happy I am with your service. I was able to download the API docs last week and I was able to replicate Interactive Brokers historical bar queries and realtime bar queries over the weekend. That was about one of the fastest integrations that I've ever done and it works perfectly!!!!" - Comment from Jason via Email
"I use IQ Feed, Great stuff as far as data analysis information, storage and retrieval is concerned." - Comment from Public Forum
"Thank you so much - awesome feed, awesome service!" - Comment from Greg via Email
"My broker in Davenport suggested I give you a try as he uses your service and says its the best." - Comment from Bill via RT Chat
"Version 4.0.0.2 has been working well for me and I appreciate that it is now a much tighter client to work with. I feel I can go to press with my own application and rely on a stable platform" - Comment from David in IA.
"Thanks for following up with me. You guys do a great job in tech support." - Comment from Phelps
Home  Search  Register  Login  Recent Posts

Information on DTN's Industries:
DTN Oil & Gas | DTN Trading | DTN Agriculture | DTN Weather
Follow DTNMarkets on Twitter
DTN.IQ/IQFeed on Twitter
DTN News and Analysis on Twitter
»Forums Index »Archive (2017 and earlier) »IQFeed Developer Support »Unresolved External symbols.
Author Topic: Unresolved External symbols. (15 messages, Page 1 of 1)

alexB
-Interested User-
Posts: 75
Joined: Dec 19, 2009


Posted: Dec 28, 2009 01:12 PM          Msg. 1 of 15
While compiling C++ Samples I got 52 error. They seem to be all of Unresolved External Symbols

Error 7 error LNK2019: unresolved external symbol "int __cdecl RegisterClientApp(struct HWND__ *,char *,char *,char *)" (?RegisterClientApp@@YAHPEAUHWND__@@PEAD11@Z) referenced in function "protected: virtual int __cdecl CHistoryCOM3Dlg::OnInitDialog(void)" (?OnInitDialog@CHistoryCOM3Dlg@@MEAAHXZ) HistoryCOM3Dlg.obj HistoryCOM3


Error 9 error LNK2019: unresolved external symbol "void __cdecl RemoveClientApp(struct HWND__ *)" (?RemoveClientApp@@YAXPEAUHWND__@@@Z) referenced in function "void __cdecl callback(int,int)" (?callback@@YAXHH@Z) console_stream.obj console_stream

Error 11 error LNK2019: unresolved external symbol "void __cdecl SetCallbackFunction(void (__cdecl*)(int,int))" (?SetCallbackFunction@@YAXP6AXHH@Z@Z) referenced in function main console_stream.obj console_stream


Etc.

I would appreciate if you resolve these three errors and I may try to resolve teh rest based on your model.

Thanks.

AlexB

DTN_Nathan_Bartsch
-IQ Developer-
Posts: 33
Joined: May 3, 2004

Telvent DTN


Posted: Dec 28, 2009 01:23 PM          Msg. 2 of 15
The C++ samples were meant to be compiled / linked in a 32 bit memory model to support more developers. The external references you've listed (RegisterClientApp, RemoveClientApp, SetCallbackFunction) are from the IQ32.dll, which is a 32-bit DLL. 32-bit DLLs will not link into 64-bit applications.

If you've got the project in 32-bit mode, it is possible that you've removed the IQ32.dll / lib from the linker. I would try adding the IQ32.dll / lib back into the project (or getting a fresh copy of the example application that already has it in the link step)

Nathan W. Bartsch - Senior Software Engineer - DTN

stargrazer
-DTN Guru-
Posts: 302
Joined: Jun 13, 2005

Right Here & Now


Posted: Dec 28, 2009 01:23 PM          Msg. 3 of 15
To be specific, these aren't compiling errors, they are link errors, which would indicate you aren't bringing in an appropriate library. And based on http://forums.dtn.com/index.cfm?page=topic&topicID=2472, you may be out of luck.

Version 4.6 and less can't do 64 bit.

They say 4.7 is slated to do so.

The basic solution is to write a small 32 bit program to get the IQFeed login and started. Then write your 64 bit stuff to connect via tcp/ip to obtain the data.

LonnieS
-King of IQ Development-
Posts: 127
Joined: Jun 2, 2004


Posted: Dec 28, 2009 01:32 PM          Msg. 4 of 15
Correct, 4.6 is 32-bit only.

4.7 supports 64 bit applications at runtime . IQFeed still runs as a 32 bit app in it's own process space but can be launched and used by 64 bit apps.

The sample apps are 32 bit - they cannot be compiled as 64 bit.

Lonnie Shumate
Development Manager, IQ Systems
DTN Market ACCESS

alexB
-Interested User-
Posts: 75
Joined: Dec 19, 2009


Posted: Dec 28, 2009 01:45 PM          Msg. 5 of 15
That's what I suspected. It is very distessing. But how come when I had platform set to 32 bit I could not access odbc32.dll?

When is the next 64 bit version is going to be available?

Thanks.

AlexB

LonnieS
-King of IQ Development-
Posts: 127
Joined: Jun 2, 2004


Posted: Dec 28, 2009 01:55 PM          Msg. 6 of 15
There is no plan for 64 bit sample apps. The purpose of sample apps is to demonstrate techniques for use of IQFeed. This can be accomplished in 32 bit as easily as in 64 bit. The libraries you are having problems are used to implement 32 bit code - not to use IQFeed.

I suspect you had problems with the 32 bit compile because you did not have your compiler properly configured for 32 bit.

Lonnie Shumate
Development Manager, IQ Systems
DTN Market ACCESS

alexB
-Interested User-
Posts: 75
Joined: Dec 19, 2009


Posted: Dec 28, 2009 02:25 PM          Msg. 7 of 15
I switched back to x32 and got my 18 errors. I set Exclude certain libraries: version.lib; odbc32.lib with no effect whatsoever on the outcome. It is becoming ridiculous.

AlexB

alexB
-Interested User-
Posts: 75
Joined: Dec 19, 2009


Posted: Dec 28, 2009 02:27 PM          Msg. 8 of 15
I suspect you had problems with the 32 bit compile because you did not have your compiler properly configured for 32 bit.


Ny compiler is set by Properties=>Platform, that's it. I reset it to x32 and got back my 18 errors: Version.lib and odbc32.lib cannot be open.


AlexB
Edited by alexB on Dec 28, 2009 at 02:29 PM

alexB
-Interested User-
Posts: 75
Joined: Dec 19, 2009


Posted: Dec 28, 2009 03:13 PM          Msg. 9 of 15
There must be a 32 bit version of version.lib. I tried to download and installl x86 Windows SDK 2.0 and could not find this file in the library which is very short.

Where did you get it from?

AlexB

alexB
-Interested User-
Posts: 75
Joined: Dec 19, 2009


Posted: Dec 28, 2009 03:21 PM          Msg. 10 of 15
You guys should create a 64 bit version of IQ32.dll and other dlls. It is pretty elementary. It would have taken a couple of days for me for isntance. I've read some threads and it seems many people are suffering from your shortcoming.

Thanks.


AlexB
Edited by alexB on Dec 28, 2009 at 03:23 PM

alexB
-Interested User-
Posts: 75
Joined: Dec 19, 2009


Posted: Dec 28, 2009 03:58 PM          Msg. 11 of 15
I am trying to build a new C++ application from scratch and attach the cpp files one by one. It does not work out. When I specified the app as x32 I got an error that the file kernel32.dll could not be opened. So, I had to switch to x64 but here again I will run into the same predicament.

Reading your posts I cannot figure out how you handle this issue if you ever do.

It would be ridiculous for me to set up an x32 machine for this purpose specifically or run emulation mode.

AlexB

LonnieS
-King of IQ Development-
Posts: 127
Joined: Jun 2, 2004


Posted: Dec 28, 2009 04:07 PM          Msg. 12 of 15
version.dll and odbc32.dll are 32 bit libraries. They are not used in 64 bit compiles - that is why you received 50+ linker errors (unresolved External symbols) when you switched to 64 bit. All references to functions in those libraries were unresolved because the 64 bit compile had no libraries defined with the appropriate function labels to resolve the 32 bit calls from the sample apps.

The version.dll and odbc32.dll are installed with your VS2008, they are not provided by IQFeed. Your issues are with your use of the compiler not IQFeed. You are having trouble accessing the files supplied with the compiler for compilation of 32 bit code - which VS2008 does support. You do not need a 32 bit machine - 32 bit apps run fine on a 64 bit machine.

A 64 bit version of iq32.dll is unnecessary, the solution, already implemented in the latest beta, is to directly launch iqconnect. That will not resolve the issue you are experiencing with compiling 32 bit sample apps. iq32.dll is not compiled in the 32 bit compile of sample apps - it is provided by IQFeed already compiled.

Again these are sample apps, they are provided to demonstrate techiques for using IQfeed. The compilation is simply a way to see the effects of the techniques but to use and understand them in your own application you will need to examine the code. These are not templates for development and were not intended to be.

The techniques are not dependent on 32 or 64 bit and can be easily incorporated into a 64 bit app that you write. However, if you need a 64 bit method of launching IQFeed then you will need to download the 4.7 beta.



Lonnie Shumate
Development Manager, IQ Systems
DTN Market ACCESS

Edited by LonnieS on Dec 28, 2009 at 04:08 PM
Edited by LonnieS on Dec 28, 2009 at 04:09 PM

alexB
-Interested User-
Posts: 75
Joined: Dec 19, 2009


Posted: Dec 28, 2009 05:03 PM          Msg. 13 of 15
Thanks, I will have to try the beta. For some reason I cannot launch a 23 bit C++ app in my VS2008. I understand it should work and I have a number of C# applications I developed in 32 bit environemtn that I run on 64 machine and even continue to develop. It is that I am not that familiar with C++ as of late. Having some difficulties after so many years of not working with it.

AlexB

alexB
-Interested User-
Posts: 75
Joined: Dec 19, 2009


Posted: Jan 1, 2010 04:12 PM          Msg. 14 of 15
Now is a good question: where is the link to 4.7 beta? On this page:

http://www.iqfeed.net/index.cfm?displayaction=support§ion=download

I can see words: Download IQFeed for Neuroshell TRADER adapter beta 1.0.0.13 (12/01/2009)

but this is obviously not the same..

Where is the beta you are talking about?

Thanks.

AlexB

DTN_Steve_S
-DTN Guru-
Posts: 2093
Joined: Nov 21, 2005


Posted: Jan 4, 2010 01:10 PM          Msg. 15 of 15
AlexB, currently the beta is only available to registered 3rd party developers. As a result, you must first login to the developer website at http://www.iqfeed.net/dev/index.cfm?login=login and then click the "Download API" link in the left hand navigation menu to get the current beta.
 

 

Time: Thu May 2, 2024 4:44 PM CFBB v1.2.0 13 ms.
© AderSoftware 2002-2003