2021/032 공유 라이브러리에서 C++ 다형성 사용 버전 업그레이드시 클래스를 변경해도 안전하게 사용할 수 있는 라이브러리를 만들고 싶었다. (ABI 호환) 그런데 방법이 생각이... 모든 메서드에 대해 invoke 함수를 통해 실행하도록 해야하나.. 간편한 방법은 없는 듯 하다. 상속 및 다형성으로 vtable를 통한 호출 방법을 테스트 해 본 것이다. Disassembly of section .text: 0000000000000000 : class B : public A { public: void hello() override; }; int main() { 0: f3 0f 1e fa endbr64 4: 55 push %rbp 5: 48 89 e5 mov %rsp,%rbp 8: 48 83 ec 10 sub $0x10,%rsp A* a = (A*)0x10.. 2021. 3. 10. OpenWRT ISO github.com/jc-lab/openwrt-iso-builder jc-lab/openwrt-iso-builder Contribute to jc-lab/openwrt-iso-builder development by creating an account on GitHub. github.com 2021. 3. 8. 이전 1 다음 반응형