타사 라이브러리를 사용하여 독점적 파일을 여는 C++ 응용 프로그램을 작성하고 있습니다. 내 응용 프로그램에서 사용자는 다음과 같이 할 수 있습니다.함수 포인터가있는 C++ 콜백
int main(int argc, char* argv[]) {
CustomFileFormat f1;
f1.open("c:/file1.xyz");
f1.process();
CustomFileFormat f2;
f2.open("c:/file2.xyz");
f2.process();
Result r = f1.compare(f2);
r.generateReport();
return 0;
}
문제는 process() 기능과 관련이 있습니다. 이 콜백 함수가 제 3 자 라이브러리에서 호출됩니다
typedef void (*FileProgressCallback)(double dProgress, bool& shouldAbort);
처리 된 방법 파일의 많은 말해 (수신 :이 기능은 다음과 같이 정의 콜백 함수를 노출하는 제 3 자 라이브러리에 명령을 전송 dProgress 값은 0과 1 사이가 될 것입니다) 그리고 처리를 멈추게 할 수있는 shouldAbort bool 변수.
문제는 process() 함수를 코딩하는 방법을 모르므로 콜백을 호출 할 때 반환되는 결과가 인스턴스 f1인지 인스턴스 f2인지 여부를 알 수 있도록하는 것입니다. 내 CustomFileFormat 클래스의 멤버 함수를 정의 할 수 있습니까? 그렇다면이 클래스를 호출 할 때 어떤 것이 사용되고 있는지 알 수 있습니까?
현재 인스턴스를 사용하여 정적 또는 전역 변수를 만들면 개체의 인스턴스가 재생되는 것을 어떻게 든 기록해야합니다. – PaulMcKenzie