Прошу помочь.Подключение Dll на неуправляемом С/С++

  • Автор темы evilden
  • Дата начала
E

evilden

#1
Возникла проблема.Есть рабочая dll, необходимо подключить к CLR приложению.
Подключение происходит нормально. Все функции работают нормально кроме одной(хотя dll проверял все работает в обычных Win32 приложениях).Данная функция производит загрузку из файла если файл не найден-возвращает код ошибки,т.е. все нормально.Но если файл находит(путь указан точный) то происходит ошибка исключение "System.AccessViolationException" попытка записи в защищенную память. способы вызова:

1)[DllImport("C__Work_.DLL")]
extern "C" int LoadIn(DWORD*name_);
2)а также с помощью GetModuleFileName и GetProcAddress

результат тот же замечу еще раз-другие функции работают нормально.

Вызыв происходит
int ret;
String^ name=(String^)"D:\\file.hex";
либо
DWORD*name;
name=(DWORD*)"D:\\file.hex";
и
ret=LoadIn(name);
результат один и тот же. В win32 приложении первый вариант вызова работал нормально. name как видно выше является указателем на строку содержащую путь к файлу.
Интересно еще то что когда функция не находит файл(указывается неверный путь к файлу), возвращается int значение -1 (файл не найден) и все,то есть функция работает правильно, ошибок не возникает.Ошибка "System.AccessViolationException" возникает ТОЛЬКО в случае указателя на существующий файл,содержимое которого функция копирует.