Witam,
Próbuję załadować funkcję z zarządzanej biblioteki według tego tutorialu http://www.codeguru.com/cpp/cpp/cpp_mfc/tutorials/article.php/c9855.
W zarządzanym C++ mogę po prostu dodać sobie w referencjach i nie ma problemu z korzystaniem, natomiast gdy ręcznie spróbuję ją załadować dostaję AccesViolationException.
// Test - Classes.cpp : main project file.
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <stdio.h>
using namespace System;
using namespace std;
typedef int (*MultFunc)(int,int);
int main(array<System::String ^> ^args)
{
HINSTANCE hDll = LoadLibrary(TEXT("D:\\Workbench\\Programming\\C#\\2010\\DLL\\DLL\\bin\\Debug\\DLL.dll"));
if (hDll)
{
MultFunc multFunc = (MultFunc)GetProcAddress(hDll, "MultiplyIt");
Console::WriteLine(multFunc(5, 6));
}
else
{
Console::WriteLine("Load Failed");
}
FreeLibrary(hDll);
return 0;
}
A to kod DLL
using System;
namespace DLL
{
static public class Class1
{
static public int MultiplyIt(int a, int b)
{
return a * b;
}
}
}
co robię nie tak ?
Będę wdzięczny za podpowiedzi.