Jag har utvecklat ett Class library i C# som jag nu vill anropa från Managed C++. Jag har förstått att jag ska använda #using för att länka till dll:en. Men jag får det inte att fungera. Hur gör jag? Rent spontant känns det fel, borde vara tvärtom; huvudprogrammet i c# och tidskritisk c++ i dll, men..?Använda C#-funktioner från managed C++
(Grunden i programmet körs i C++ eftersom ett toolkit har skapat denna koden, men resten utvecklar jag i C#. Programmet startas alltså i C++, som sedan anropa C#-rutiner. Bara de tidskritiska delarna körs i C++)Sv: Använda C#-funktioner från managed C++
Hur som haver, i det projekt jag har där jag anropar (åt andra hållet, men som du ser så anropar jag annan .net-kod i vilket fall. Borde bara vara att lägga till lite #using för ditt .net-classlib och ev. se till så att bin-mappen för classlibbet finns mer som någon referens i projektets egenskaper) så ser koden ut som något såhär:
#pragma managed
#using <mscorlib.dll>
namespace ProjeKtoRStatusbar
{
public ref class Statusbar
{
public:
static System::String ^GetToolbarTooltipText(System::IntPtr hWnd, System::Int32 buttonIndex)
{
HWND phWnd;
phWnd = (HWND) hWnd.ToPointer();
int pbuttonIndex = buttonIndex;
WCHAR sb[256] = {0};
LPWSTR s = sb;
BOOL b;
b = _GetToolbarTooltipText(phWnd, pbuttonIndex, s);
//return nullptr;
if(!b)
return nullptr;
System::String ^ss;
ss = gcnew System::String(s);
return ss;
}
};
}