C++ modularization framework (like OSGi) ? - c++

I found one SOF http://www.codeproject.com/KB/library/SOF_.aspx ,
Are there anyother stable frameworks for modularization in C++ ?

The authors of the open source Portable Components library (POCO) have also developed a modular framework based on OSGI called OSP or Open Service Platform. http://www.appinf.com/en/products/osp.html. It's not open source however.

I found this write-up which gives a status as of April 2012. Definitely worth reviewing
OSGi and C++ frameworks overview.

There is also BlueBerry http://www.blueberry-project.org which implements a component based framework inspired by OSGi. It also comes with an application framework similar to the Eclipse RCP.
A rewrite of the BlueBerry core can be found in the CTK PluginFramework library (based on Qt Core): Introduction, GitHub Code .

The OSGi4Cpp tries to implement the OSGi specification in C++.

I've never seen a solution to the whole problem, but I implemented something similar using Qt plugins.
The part Qt did nicely (that C++ by itself doesn't implement) was handling C++ OO interfaces in dynamically loadable modules. Because of C++ name-mangling being non-standard, usually DLLs don't have C++ interfaces, only C interfaces. Qt did it with it's meta-object system, and it worked really cleanly for me.

Checkout cppmicroservices. It is actively developed and provides a reasonable starting point for creating an SOA based dynamic services in C++.

Apache Celix is an OSGi implementation for C and C++
http://celix.apache.org/

Related

Alternate of win32 framework for windowing system on windows

I want to develop a custom window system in c++ that should not depend on win32 library. As an example, Google Chrome has an interface that is not similar to windows own interface. Similarly MPCstar and adobe products have their own interfaces. Please help me where to start for such a project?
You can use cross platform
Qt
or
wxWidgets
but in my opinion Qt is better.
Qt is awesome even if you don't need cross platform support. I assure you after using it you won't understand how anyone could ever develop native GUI on frameworks like Win32 and MFC. Its only shortcoming is the size of the DLLs you'll have to distribute with your app.
BTW is C++ a prerequisite? if not, and you only need windows, use .Net.
I believe Qt should do the trick. I've never used it myself but it is platform independent. I know a few applications that use it, and it seems fine.
Qt and WxWidgets are the better options. And since its GUI I think Qt performs better and has greater support and lots of libraries.
Find Qt here!

Cross platform open source third party library for WebServices

I'm looking for cross platform open source third party library for web services which support c++. I have generated c++ files using WSMakeStubs utility but it uses Core Foundation data types. I want a library which provide web service call through c++ so that I can use it on Windows and Mac both the platform.
I wanted stubs that can be used on both Windows and Mac platform.
Could any one suggest me good library.
thanks
I would like to recommend gSoap. In the company I'm working at, we use it for about 7 years now (since version 2.6.0, the actual version is 2.8.3) and only made good experiences with it. Look at the success stories to get an overview of the companies which are using it.
Related:
C++ and SOAP
What is a good platform for devoloping web services in C++?
A Good C++ Library for SOAP
pion is a possibility, though I don't know how it compares to gSoap or other alternatives. I got it working an evening then got distracted with other reverse economies. I seem to remember it having fewer dependencies of the others I researched.

C++ and graphics

I have searched the web for information on creating GUIs(Games, Forms etc) in c++, I have found that OpenGL, Direct X and .Net framework can do this. The question I ask is which one is better to learn, what library for GUI in c++ is the most popular in industry. I know this is a newbie question, but if some on could lead me to the correct path it would be greatly appreciated.
OpenGL and DirectX are different to .Net framework. OpenGL and DirectX are for game development (Graphic acceleration) but .Net framework is for .Net development. If you use .Net framework then your program is not compiled to native code, it will be compiled to MSIL (Microsoft Intermediate Language) then .Net translate it to Native code at run-time (for the first time).
If you want a GUI toolkit for your C++ program, Qt, MFC and wxWidgets are a good choice. Qt and wxWidgets are cross-platform libraries thus your program will be compiled on all platforms (Windows/Linux/Mac OS). But MFC is only available for Windows. Qt is more feature-rich than wxWidgets and maybe is a better choice.
I like QT myself.
Because you mentioned DirectX I'll assume your using windows, for that I would reccomend the basic Win32 API. If you want cross platform capabilities however, I would suggest Qt.
I have searched the web for information on creating GUIs(Games, Forms etc) in c++...
What would work fine for creating traditional form-based applications won't work so well for creating games, and vice versa.
You would be better off using C# with the .NET libraries as the C++ managed extensions can be a little cumbersome. If you must go with C++, then Qt and wxWidgets are both decent options, although you're more likely to find more help and online resources for QT.
If you need to do graphics like games, then you'd better off using a higher level library than directly using DirectX or OpenGL. Ogre3d is one option on the open source side, the C4 engine is an affordable option on the commercial side. If C# is an option, then might want to look at XNA and Unity3d.

Can I do Android Programming in C++, C?

Can I do Android programming in C++, C? If the answer is "yes" then please tell how? And what's the procedure to set up?
I don't know Obj-C, Java, but well-versed in C, C++, Flash AS3, SDK released by Google.
Please do not tell about NVDIA SDK it's not fully developed :)
PLEASE NOTE: THE ANSWER BELOW IS HORRIBLY OUTDATED, AND MIGHT NOT BE ENTIRELY CORRECT ANYMORE.
You can program in C/C++ using the Android NDK. You'll have to wrap your c++ codebase in a static library and load that through a Java wrapper & JNI.
The standard NDK does not support RTTI and a lot of the functionality of standard c++ is also not available such as std::string, etc. To solve this you can recompile the NDK. Dmitry Moskalchuk supplies a modified version of the NDK that supports this at http://www.crystax.net/android/ndk-r3.php. This modified version works on all Android phones that run on an ARM processor.
Depending on the kind of application you should decide to use Java or C/C++. I'd use C/C++ for anything that requires above average computational power and games -- Java for the rest.
Just pick one language and write the majority of your application in that language; JNI calls can decrease your performance by a lot. Java isn't that hard though -- if you know how to program in C/C++. The advantage of Java is that the application can run on any device running Android, where as NDK applications depend on the architecture it was compiled for.
You should use Android NDK to develop performance-critical portions of your apps in native code. See Android NDK.
Anyway i don't think it is the right way to develop an entire application.
Yes, you can program Android apps in C++ (for the most part), using the Native Development Kit (NDK), although Java is the primary/preferred language for programming Android, and your C++ code will likely have to interface with Java components, and you'll likely need to read and understand the documentation for Java components, as well. Therefore, I'd advise you to use Java unless you have some existing C++ code base that you need to port and that isn't practical to rewrite in Java.
Java is very similar to C++, I don't think you will have any problems picking it up... going from C++ to Java is incredibly easy; going from Java to C++ is a little more difficult, though not terrible. Java for C++ Programmers does a pretty good job at explaining the differences. Writing your Android code in Java will be more idiomatic and will also make the development process easier for you (as the tooling for the Java Android SDK is significantly better than the corresponding NDK tooling)
In terms of setup, Google provides the Android Studio IDE for both Java and C++ Android development (with Gradle as the build system), but you are free to use whatever IDE or build system you want so long as, under the hood, you are using the Android SDK / NDK to produce the final outputs.
You should look at MoSync too, MoSync gives you standard C/C++, easy-to-use well-documented APIs, and a full-featured Eclipse-based IDE. Its now a open sourced IDE still pretty cool but not maintained anymore.
You can take a look also at C++ Builder XE6, and XE7 supports android in c++ code, and with Firemonkey library.
http://www.embarcadero.com/products/cbuilder
Pretty easy way to start, and native code. But the binaries have a big size.
You can use the Android NDK, but answers should note that the Android NDK app is not free to use and there's no clear open source route to programming Android on Android in an increasingly Android-driven market that began as open source, with Android developer support or the extensiveness of the NDK app, meaning you're looking at abandoning Android as any kind of first steps programming platform without payments.
Note: I consider subscription requests as payments under duress and this is a freemium context which continues to go undefeated by the open source community.
There is more than one library for working in C++ in Android programming:
C++ - qt (A Nokia product, also available as LGPL)
C++ - Wxwidget (Available as GPL)

C++: GUI libraries for embedding into an interpreter

I've got my interpreter up and running - quite bug-free and stable for now - now I want to add some visual options to my language to play around.
What is a good GUI library easy to use and mainly easy to embed and "link" to my programming language?
What general rules do I have to follow?
I'm currently on XP with Microsoft Visual Studio 2010.
Depends on your language and it's properties. For example, if you can only expose C-style functions, then the default WinAPI supports this style. If you can do the whole C++ classes malarky, then you could do MFC, GDI+, WIC, etc.
Ultimately, if you want something easy to embed, it's simpler to write good embedding code than worry about what you're going to embed.
In various posts I have seen regarding UI Libraries QT and WxWidgets seem to be popular.
Look here for a list of features
Check out the fast light toolkit (FLTK) at http://fltk.org. From that website:
FLTK (pronounced "fulltick") is a cross-platform C++ GUI toolkit for UNIX®/Linux® (X11), Microsoft® Windows®, and MacOS® X. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL® and its built-in GLUT emulation.