Run-Time Check Failure #0

975 단어 VC
dll을 동적으로 로드한 후 내보낸 C API 실행 중 오류 발생:
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call.  This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.
 
 
이것은 함수 호출 약속이 일치하지 않거나 매개 변수의 전달 오류일 수 있습니다.
함수 호출 약속은 주로 두 가지를 제약한다.
1. 매개 변수 전달 순서
2. 호출 창고는 누구(호출 함수 또는 호출 함수)가 청소합니까
일반적인 함수 호출 규칙: stdcall cdecl fastcall thiscall naked call
__stdcall 표시
1. 매개 변수가 오른쪽에서 왼쪽으로 창고에 들어간다
2. 함수 호출자가 창고를 수정합니다
3. 함수 이름에 자동으로 선도적인 밑줄을 긋고 뒤에 @ 기호가 뒤따르고 그 뒤에 매개 변수의 사이즈가 뒤따른다
depends를 사용하면 함수의 내보내기 이름을 볼 수 있습니다.
가져오기 C API에 대한 호출 규칙을 설정하려면 다음과 같이 하십시오.
 
  
typedef int (__stdcall *ImpAPI)(int,int);

좋은 웹페이지 즐겨찾기