님이 MySQL ++에 문제가있어 필사적으로 도움이 필요합니다. Visual Studio 2010, MySQL ++ v3.1.0 및 MySQL v5.1.59 (x86 & x64)를 사용하고 있습니다. 모든 라이브러리가 올바르게 컴파일되었습니다. 이 오류는 컴파일러 설정 "Both (/ RTC1, equiv. to/RTCsu) (/ RTC1)"이 설정되어 있기 때문에 Debug 버전에서만 발생합니다.MySQL ++ - 런타임 검사 실패 # 2 - 변수 주위의 스택이 손상되어
편집 :이 문제는 디버그 버전에서만 발생합니다. 릴리스에서 그것은 매력처럼 작동합니다 나는 mysqlpp_d.dll로 문제를 추적했고, MySQL ++ 객체는 참조 카운팅 때문에 소멸자에 충돌합니다. 그것은 ref 카운터의 메모리를 액세스 할 수 없다는 것에 대해 불평하고, 그것을 줄이려고 할 때 충돌합니다. 적어도 내가 생각하는 것.
나는이 없는지 derefrenced 및 올바른 순서로 제거됩니다 만들려고 (심지어는 관련이없는 상점,하지만 제가 희망 진정한 문제를 추적하는 데 도움) :: http://pastebin.com/Ru0uYcy9
그것은과 충돌을 Launcher.exe의 0x000007feeef5dd4c (mysqlpp_d.dll)에서 첫 번째 예외가 발생했습니다. 0xC0000005 : 0x000007feeeff5148 위치에 액세스 위반이 기록됩니다. Launcher.exe의 0x000007feeef5dd4c (mysqlpp_d.dll)에서 처리되지 않은 예외 : 0xC0000005 : 0x000007feeeff5148 위치 쓰기 액세스 위반. 여기
그리고 breakes : http://pastebin.com/9Mfr7NwB
라이브러리의 디버그 버전을 응용 프로그램의 디버그 버전과 연결하고 있습니까? – alexisdm
예, 전 버전에서 모든 항목이 올바르게 연결되었는지 확인했습니다. – CFortner
그래, 좀 더 디버깅을하고 신선한 콘솔 프로젝트를 만들었습니다. 그리고 나는 어떤 오류도받지 않았다. 둘 사이의 유일한 차이점은 하나는 DLL 프로젝트이고 다른 하나는 콘솔 프로젝트입니다. 그러나 이것은 코드 작동을 고려할 때 문제가 아닌지 의심 스럽습니다. 이것은 엔진이 메모리 관리를 어떻게하는지에 대한 결론이 MySQL ++이 메모리를 다루는 방법에 영향을 미친다는 결론을 내리게합니다. – CFortner