Q&A

  • 답변이 없어서 다시 올립니다. 꼭좀 도와주세요.
그제 질문 올렸는데 답변이 없어서 다시 올립니다.

dll 관련 질문인데요... 어떤 한 어플에서 쓰고 있는 동적 dll을 다른 어떤 어플이 사용할 수 있나요?

예를 들어 A.exe에서 C.dll을 동적 로드해서 함수를 통하여 C.dll의 전역변수

에 값을 할당 후 B.exe에서 C.dll의 전역변수 값을 알아낼 수 있나 해서요.

굳이 DLL로 안하고 메모리 맵이라든가 COPY_DATA 이런것도 쓸 수 있지만

말하긴 복잡하지만 반드시 이렇게 구현을 해야 할 상황이라서요.

제가 그동안 해 본 결과 B.exe에서 GetModuleHandle로 핸들값 얻어오지도

못하고, 또 A.exe에서 B.exe로 핸들값을 넘겨도 GetProcAddress 메소드가

안먹던데요.

또 B.exe에서 새로 LoadLibrary하면 함수는 쓸 수 있는데 전혀 데이터의

공유는 안되구요.

조금만 알면 될것 같은데 도무지 저는 모르겠네요.

좀 도와 주세요.. 부탁드립니다.
3  COMMENTS
  • Profile
    최용일 2004.05.13 20:52
    안녕하세요. 최용일입니다.

    DLL에서의 전역변수공유는 안되는 걸로 알고 있습니다. 단지 함수모듈만 공유합니다.

    파일이나 레지스트리,메모리멥, WM_CopyData등을 이용해서 데이터를 공유하세요...

    ^^ 항상 즐코하세요...

  • Profile
    루이 2004.05.13 22:30
    그럼 함수 모듈이라도 공유 할 수 있는 방법 좀 알려주심 안되나요.

    굳이 예를 들자면 아래와 같고 실제는 코드영역만 서로 공유하면 됩니다.

    구체적으로 방법 좀 알려주세요.



  • Profile
    최용일 2004.05.13 22:38
    안녕하세요. 최용일입니다.

    흠... 그냥 각각의 파일에서 DLL을 로드해서 쓰시면 됩니다. 여러개의 파일들이 DLL을 로드하더라도 메모리에는 단지 하나만 올라갑니다.

    동적으로 로드하시는거 같은데... LoadLibrary, GetProcAddress를 이용해서 사용하세요...

    ^^ 항상 즐코하세요...