64 비트 플랫폼에서 지원되지 않는 일부 어셈블리 코드가 포함 된 C++ 프로젝트의 32-64 비트 마이그레이션을 진행하고 있습니다. 마이그레이션해야하는 프로젝트에 대한 기본 정보를 제공하고자합니다. 내가 교체해야 그러니까 기본적으로인라인 어셈블리 코드를 C++로 대체하십시오.
int* a = Begin_args;
int* b = End_args; (where Begin_args and End_args are int*)
while (b > a)
{
int test = *(--b);
__asm push test
}
: 프로젝트의
출력 어셈블리 코드를 포함하는 컨텍스트 또 다른 C++ 프로젝트 여기
에서 사용하는 lib 디렉토리 파일입니다 성명서
__asm push test
내가 직면하고 피소은 다음과 같습니다
내가 프로젝트를 디버깅 할 수없는 나는 같은 푸시 문
의 팝업 문을 찾을 수 없습니다 나는 프로젝트의 출력이 lib 디렉토리 파일이로 .
스택, 배열, 대기열을 사용해 보았지만 제대로 작동하지 않았습니다. 컴파일 오류가 발생하지 않지만 응용 프로그램을 시작할 때 충돌이 발생합니다.
그래서 제 질문은 :
내가 누구의 출력 lib 디렉토리 파일에있는 모든 C++ 프로젝트를 디버깅 할 수 있나요?
- 나는 누군가가
va_list
을 시도하라고, 또 다른 포럼에이 질문을하지만 난va_list
이__asm push test
대신 작동 방법을 이해 할 수없는 무엇입니까? 마지막으로이 Asm 코드를 C++로 바꾸는 방법 /이 Asm 코드를 바꾸려면 어떻게해야합니까?
오랫동안이 문제에 빠져 있으면 도움이 될 것입니다.
응용 프로그램과 라이브러리의 디버그 빌드를 수행하고 응용 프로그램에 대한 라이브러리의 디버그 빌드를 사용하는 경우 라이브러리를 디버깅 할 수 있어야합니다. –
'va_list'는 아마 여기에 맞는 답 일 것입니다. 그것을 사용하는 방법의 예를 살펴 보셨습니까? –
예 보였지 만 여기에서 사용하는 방법을 이해할 수는 없습니다. 내 코드에서 어떻게 사용할 수 있습니까? 감사합니다 – vsoni