I\'m writing a bot for a game, which has a C++ API interface (ie. methods in a Cpp dll get called by the game when events occur, the dll can call back methods in the game to tri
One solution is to create a managed C++ class library with regular __declspec(dllexport)
functions which call managed methods in a referenced C# class library.
Example - C++ code file in managed C++ project:
#include "stdafx.h"
__declspec(dllexport) int Foo(int bar)
{
csharpmodule::CSharpModule mod;
return mod.Foo(bar);
}
C# Module (separate project in solution):
namespace csharpmodule
{
public class CSharpModule
{
public int Foo(int bar)
{
MessageBox.Show("Foo(" + bar + ")");
return bar;
}
}
}
Note that I am demonstrating that this is an actual .NET call by using a System.Windows.Forms.MessageBox.Show
call.
Sample basic (non-CLR) Win32 console application:
__declspec(dllimport) int Foo(int bar);
int _tmain(int argc, _TCHAR* argv[])
{
std::cout << Foo(5) << std::endl;
return 0;
}
Remember to link the Win32 console application with the .lib
file resulting from the build of the managed C++ project.