Well i understand an SDK to be software development kit, to well develop software. However the knowledge that i know of it doesnt go beyond the depth of "mainstream" SDKs (ex. Apple, Android, etc). Iknow not of many other SDK that are beyond that of the heavy titles.
The question was developed because i was looking forward to developing mobile apps using c++. (kind of an attempt to actually implement my knowledge of c++ towards something actually productive beyond that of console "command prompt" programs.) I guess it raises another question, "what are some of the strong avenues that use c++ to "develop software?"
"what are some of the strong avenues that use c++ to "develop software?
I'm not quite sure what you mean by "avenues", but a lot of game development is done in C++. The DirectX SDK is for C++, OpenGL (not exactly an SDK, but meh) is primarily for C/C++. As already pointed out the Source and Unreal engines are written in C++ and developed with in C++.
Sorry, reading my question today, it seems a little terse.
I got the impression from you original post that you may think that SDKs are all platform level entities.
"what are some of the strong avenues that use c++ to "develop software?"
Games is a fairly well known one; but others, I would say, tend towards the system level. Embedded systems, drivers, firmware, and the systems that run behind the 'user experience'. There is a lot of blending of systems, technologies and languages. You may write a COM component in C++ to be consumed by a .net framework UI.
That possibly doesn't clear things up but it is my perspective on C++.
For mobile Apps you're pretty much stuck with what they give you. As you said Android's API is Java, but there is a way provided in the SDK to tie in some c++. Google explicitly says that you don't want to do this unless you have to though. You'll have to recompile your app for all android devices that have different enough hardware from the first you compile for.
iOS API is Objective-C, but IIRC you can use slightly modified c++ code in Objective-C in some way, I think they call it Objective-C++... Don't quote me on that I'm not all that sure.
As for windows Phone 7, chances are it's using .NET, and while most if not ALL it's libraries are C# you can probably use any .NET managed language.
iOS API is Objective-C, but IIRC you can use slightly modified c++ code in Objective-C in some way, I think they call it Objective-C++... Don't quote me on that I'm not all that sure.
I 'm currently trying to find the time to give Objective-C a good look; however, interfacing it with C and C++ is meant to be straight forward. I believe that it can be mixed in the same files.
I think quite a lot of APIs used by C++ programs are actually C APIs.
The problem with C++ APIs is that requires you to use the right toolset; for example MFC (which is strictly speaking part of VC++ rather than the Windows SDK) requires you to compile with Visual C++. This is because of differences the name mangling, the implementation of vtables, heap management, ... So you can't build an MFC app with MinGw.
GDI+, which is included in the Windows SDI, is a C++ interface. But its classes are all inline wrappers round a C API, to circumvent the compiler dependency.
As far as Qt goes, I believe you have to ship the relevant build (version and build tools) with your app. I have both a MinGW and a VC build of Qt on my computer which I keep well apart!
Andy
P.S. Is the term SDK used in the Linux world? Or do people just refer to a libraries developent files, or package?
AppDevTrainee - With regard to your question, "what are some of the strong avenues that use c++ to "develop software?
I recently wrote a post on my blog about a presentation given by Herb Sutter in Banff Canada. He's a big C++ guy. Big.
The presentation was quite interesting for a number of reasons. One point he made that is applicable to your question is the re-emergence of native languages over managed languages. He suggests that a commercial need for C/C++ developers will be increasing. This, being a result of an increase of perf/cost expectations. In other words, stick with the C++ and you'll be in a very good spot.
I think you'll find the talk/presentation quite helpful. Here it is: http://herbsutter.com/
Good SDKs usually support a lot of the more used languages C, C++, C#, Java, etc. If they only focus on one then it means that they are doing a monopoly type thing. XNA uses C# and C++ but I think you have to get the license to use C++ with it. That is another thing that usually is a catch, if there is a license you have to buy then they may restrict languages til you get the full license.
What I meant by monopoly is that they sometimes force you to use the language they prefer or have created (Microsoft for example).