Я пытаюсь получить доступ к функции в DLL на C # и C ++.
C ++ работает нормально, как и C # на WinXP.Однако я получаю следующую ошибку при попытке получить доступ к функции в системе Win2k8:
Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory
is corrupt.
at Router.GetAddress()
Объявление в C #:
[DllImport("Constants.dll")]
static extern String GetAddress();
Использование в C # (на данный момент) просто выводит его:
Console.WriteLine(GetAddress());
и содержание функции DLL являются просто:
const static WCHAR* szAddress= L"net.tcp://localhost:4502/TestAddress";
extern "C" __declspec(dllexport) const WCHAR* GetAddress()
{
return szAddress;
}
Я действительно не думаю, что было что-то спорным здесь.Единственное, о чем я могу думать, это возврат констант из GetAddress, но я не уверен, как применить соответствующее ключевое слово к C #, так как я еще не настолько знаком с этим языком.
Любые предложения будутс благодарностью.