Using C++ header file in vb.net app? - c++

What is the simplest way to use a C++ header file in a VB.NET application?
I need to access an API defined via the header file for a custom VB.NET windows app.

Use the VB.NET Declare statement to redeclare the API function in your code. This will not work if the header file contains classes, you'll need to write a wrapper to make those usable.

Use the PInvoke Interop Assistant to convert the C++ header into PInvoke declarations.
If you have the full source code for the C++ project use C++ Interop as advised by whunmr.

Related

UWP Accessing WindowsRuntimeStreamExtensions class from C++?

I inherited a UWP application and I need to add additional functionality that needs to be implemented in C++. Therefore, I'm building a C++ WinRT assembly that will expose functionality that the existing UWP C# application will need to consume.
To that end, inside of that C++ WinRT project, I'm trying to make use of the [WindowsRuntimeStreamExtensions][1] class in a C++ file. I cannot seem to find a header file on my system which declares the WindowsRuntimeStreamExtensions class, and trying to reference it using the managed C++ keyword "using" as such:
#using <System.IO.dll>
..gives me the following compiler error:
"WinRT does not support #using of a managed assembly"

calling .cpp files from Objective-C class .m

I have a few classes written in c++ which needs to be integrate with my iOS project written in Objective-C. I got a Mac (C++) project from my client to integrate with my project. I need to call the methods in .cpp class from Objective-C class with NSNotificationCenter or some other way which is better do it?
If you make a file with extension .mm you can use both Objective-C and C++ inside that one. It can quickly get messy so i usually try to keep the C++ touchpoints contains in a few .mm files so the whole thing won't be a mix of Objective-C and C++ and c code.

How to include/import a c++ app in VB.net

Link grammar is a piece of software allowing for sentence parsing. It has an API that I hope to use (Details here) however the example is written in c++ and I'm a vb.net user. I've tried adding a reference to the file named:
link-includes.h
But vs2010 doesn't allow me to select this file since it's not one of the recognised file types for a reference. I've tried adding the above file to the solution but that doesn't allow me to reference it in any way (as far as I know). Any advice/hints/suggestions would be welcome!
A VB.Net project can't directly reference a C++ header file. In order to use C++ code from VB.Net, one of the following approaches will need to be used:
Compile the C++ code to a native DLL, which the VB.Net code can then P/Invoke
Compile the C++ code to a native DLL, which is then exposed via COM
Compile the C++ code in a C++/CLI project, which the VB.Net project can reference as another managed project (i.e., via project References)
Additional information can be found here: Invoke Native C++ DLL from .NET Code

Opening an objective c window from a C++ app

I have a C++ app that needs to send messages to google API's to do this I need to authenticate. I have a standalone Objective C authentication utility that is allowing me to do the authentication, but i'm not sure how to integrate it into the C++ app.
How do a trigger an Objective C window to load from C++
You can mix Objective-C and C++ code using Objective-C++. Simply just rename the file that uses both languages with an extension of .mm. Any other files that imports any Objective-c++ files will need to be renamed to .mm as well.

JNI for dummies

I have just started reading up on the JNI and guy from the C++ side of our project has just pointed me towards 2 files, the Java Interface and the DLL file.
With the DLL in hand do I need to have any other knowledge of what is going on on the C++ side. Do I now just put the DLL in the class path and access it via the Java interface he has given me? He created a header file using the Java interface and this is included in the .cpp file. From that I assume the DLL was generated.
The following is some of the code I have
System.loadLibrary("PredictionService");
JNIPrediction predictor = new JNIPrediction();
predictor.getPredictions("test");
I don't get any errors so does this mean it is loading the DLL successfully and calling the getPredictions() method inside the DLL?
Basically I was needing to know is this how you use JNI typically.
A 'Java Interface File' is not a commonly defined term. You need at least a C header file or some documentation to indicate how the functions in your DLL need to be called. The only information you're likely to get from the DLL itself is the names of the available methods.
While it is possible to embed debug information in the DLL which describes the DLL method signatures, it's not likely that you have such in your DLL, and you need additional tools to be able to make use of it.