C# Windows 응용 프로그램에서 호출하는 C++ dll 프로젝트가 있습니다. 하지만이 C++ DLL 프로젝트에서 파일에 쓰기를 시도 할 때마다, 나는 다음과 같은 오류가 발생합니다 :C# Windows 프로젝트에서 C++ dll 프로젝트의 파일에 쓸 수 없습니다.
An unhandled exception of type 'System.AccessViolationException' occurred in Wrapper.dll
Additional information: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
이 오류, 파일 fstream
의 _Lock()
에 코드 포인터를 수신 할 때 :
나는 C++ DLL 프로젝트에서 사용하고있는 코드는 다음과 같습니다
ofstream ofs("debug.txt"); // OK
if (ofs.good()) // OK
ofs << "aaa" << endl; // this line causes the error <--
ofs.close();
기타 정보 :
- VS2010-Winx64 (.NET 프레임 워크 4)에서 개발.
Wrapper
은 C#에서 호출되도록 C++ 코드를 래핑하는 관리되는 C++ 프로젝트입니다.- 쓰기가 가능한
debug.txt
파일을 확인했습니다.
모든 의견을 보내 주시면 감사하겠습니다. 감사.
확인 : VS2010에서
,이는 수행 할 수 있습니다. 말 그대로 Windows 액세스 문제 일 수 있습니까, 아니면 파일이 읽기 전용입니까? – miltonb@miltonb 감사의 말로 업데이트되었습니다. – herohuyongtao
포인터가 예상되는 곳에 값을 전달 중입니다 ... – leppie