이런것도 동적 바인딩이라고 하는지 잘 모르겠습니다만;;;
커널을 만드는 중에 변수값 자체를 매개변수로 전달하면 문제가 없는데
포인터나, 주소를 매개변수로 전달하면 참조하지 못하는 경우가 있습니다.
예를들어
test.DrawMessage("test",10,10, 1);
했을시에 DrawMessage 에서는 "test" 의 주소를 제대로 못 따오더군요
원인을 나름대로 생각했는데
커널을 만들고 돌릴시에 kernel.cpp 를 컴파일하고 부트로더 asm 을 어셈해서 나온 boot.bin 와 단순결합 즉
copy /b boot.bin + kernel.bin 하기 때문에
주소가 kernel.cpp 컴파일시에서는 제대로 정해져있어도 실제로는 달라져 있을 것이라고 예측했는데요
예측대로 boot.bin 의 크기와 여러가지 기타 이미지 관련 오프셋을 더해주니까 잘 참조하는 것을 확인할수 있었습니다.