키움증권 API를 사용중인데 우선 얘네가 ocx를 사용해서 리버싱도 힘들고 한데 하여튼 CommRqData를 호출해서 데이터를 요청하면 OnReceiveTrData 이벤트가 발생하고
반드시 이 이벤트의 핸들러 내에서 GetCommData를 호출해야 요청한 값이 얻어와지는데 이건 레퍼런스에도 나와 있는 내용이고 실제로 해당 핸들러가 아닌 곳에서 호출해보면 값이 안 오거든?
이걸 내가 구현하려면 어찌할까 생각하면서 혹시 caller의 인자를 읽어서 내부 값을 비교하는 게 아닌가 싶어서 이벤트 핸들러에서 쓰인 인자를 그대로 넘겨봤는데도 안되더라구
그래서 ida로 코드를 봤는데 if문이 저리 돼있어서 저게 무슨 값일까 하고 클래스 구조를 찾아볼랬는데 리버싱 알못이라 실패했고 각종 삽질도 다 실패했음
내가 하고싶은 건 이벤트핸들러에서는 큐에 요청값을 넣기만 하고 다른 스레드에서는 읽기만 하는 식의 처리인데 이걸 어찌 해결해야 할까?
며칠 삽질중인데 도저히 모르겠음 ㅠㅠ
이벤트핸들러에서 GetCommData 한 다음 큐에 넣고 다른 스레드에선 읽기만 하면 되는 거 아님? 어떤 부분이 문제인 건지 잘 모르겠음
GetCommData가 보시다시피 인자가 없는게 아니라서 이벤트핸들러에서 무슨 값인지 읽고 거기에 대한 분기를 해줘야하는데 그걸 안 원해서 그럼ㅇㅇ 결국 스위치 써서 겟컴데이터를 n번 나눠서 적어주는게 싫어서그럼
CommRqData랑 GetCommData를 같은 스코프에서 하고싶은것
아 그런 비동기적으로 일어날 일을 모아놓는다는 게 참 어려울 듯 난 모르겠다 좋은 방법을... ㅠ
만약 된다면 첫번째꺼 호출하고 루프돌며 큐에 값 있으면 읽어와서 그 값을 토대로 GetCommData 호출할랬음
모바일앱 분석해라.. - dc App
툴키드네 툴키드 ida 키면 뭐함 ㅋㅋㅋ
리버싱 1도 모르는 사람임 ㅋㅋ 그냥 ida 있으니 켜본거