Q&A

  • DLL 안의 함수에서의 변수 문제..
DLL 사용시에 변수 사용 질문입니다..

정적 DLL를 사용하고 있고요..

DLL 안의 함수에서 선언된 변수를 메인 프로그램에서 사용시에....

변수 선언을 어떻게 해야 될지를....

메인에서 DLL의 함수를 CALL하는것은 정상입니다.

imp.h와 exp.h에 각각 변수를 함수선언하듯이 선언하였는데...



선언은 이렇게 했구요..

메인프로그램의 #include "import.h"의 내용

import.h 에는 extern "C" __declspec(dllimport) long cs_sqlcode;

DLL프로그램의 #include "export.h"의 내용

export.h 에는 extern "C" __declspec(dllexport) long cs_sqlcode;



이런 링크에러가 나옵니다..



[LinkerError] Unresolved external '_cs_sqlcode' referenced from C:LAIBSRCLAIB222218MAIN2218.OBJ.



즉, DLL를 CALL하는 메인프로그램에서 DLL안의 변수를 사용하는 방법 좀 부탁합니다.

참고로 C++Builder 로 작성된 겁니다..

1  COMMENTS
  • Profile
    안치봉 1999.05.25 03:57
    왕초 wrote:

    > DLL 사용시에 변수 사용 질문입니다..

    > 정적 DLL를 사용하고 있고요..

    > DLL 안의 함수에서 선언된 변수를 메인 프로그램에서 사용시에....

    > 변수 선언을 어떻게 해야 될지를....

    > 메인에서 DLL의 함수를 CALL하는것은 정상입니다.

    > imp.h와 exp.h에 각각 변수를 함수선언하듯이 선언하였는데...

    >

    > 선언은 이렇게 했구요..

    > 메인프로그램의 #include "import.h"의 내용

    > import.h 에는 extern "C" __declspec(dllimport) long cs_sqlcode;

    > DLL프로그램의 #include "export.h"의 내용

    > export.h 에는 extern "C" __declspec(dllexport) long cs_sqlcode;

    >

    > 이런 링크에러가 나옵니다..

    >

    > [LinkerError] Unresolved external '_cs_sqlcode' referenced from C:LAIBSRCLAIB222218MAIN2218.OBJ.

    >

    > 즉, DLL를 CALL하는 메인프로그램에서 DLL안의 변수를 사용하는 방법 좀 부탁합니다.

    > 참고로 C++Builder 로 작성된 겁니다..





    안녕하세요. 아래의 글이 도움이 될지도 모르겠습니다.



    Global variables declared in a DLL are private to that DLL. A DLL cannot access variables declared by modules that call the DLL, and it is not possible for a DLL to export its variables for use by other modules. Such access must take place through a procedural interface.

    Even though a DLL can be used by multiple applications at the same time, to the DLL it appears that there is only one client, and each instance of the DLL will have its own set of global variables. For multiple DLLs (or multiple instances of one DLL) to share memory, the DLLs must use memory mapped files. Refer to the Windows API documentation for further details on this topic.



    • 이상석
    • 1999.05.25 00:57
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 모승열
      1999.05.25 01:26
      이상석 wrote: > 안녕하세요 이상석입니다. > 다름이 아니오라 델파이 4에서 DateTimePicker 에서 날짜만...
    • 지니
    • 1999.05.25 00:36
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.25 02:48
      아래 답변에 SendData 프로시져입니다 라는것이 있습니다. 그것을 참고하세요. 여기서 SendData라는 키워...
    • 영인
    • 1999.05.25 00:35
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.05.25 01:53
      type tmynum=set of [1..20]; 문장 에러가 나는 군요.. 저도 잘쓰지 않아서 헬프를 참고 했는데 아래...
    • 신인재
      1999.05.25 02:12
      type tmynum= set of 1..90; var mynum:tmynum; aa : Boolean; begin mynum:=[1,2,3,4,10,20...
    • 왕초
    • 1999.05.25 00:32
    • 1 COMMENTS
    • /
    • 1 LIKES
    • 안치봉
      1999.05.25 03:57
      왕초 wrote: > DLL 사용시에 변수 사용 질문입니다.. > 정적 DLL를 사용하고 있고요.. > DLL 안의 함수...
    • sunhee
    • 1999.05.25 00:28
    • 1 COMMENTS
    • /
    • 0 LIKES
    • KJW
      1999.06.04 06:59
      sunhee 께서 말씀하시기를... > 안녕하세요. 선희덕이라고 합니다. > > A라는 프로그램에서 B라는 프...
    • 고부성
    • 1999.05.25 00:17
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.25 03:02
      함수인자로 사용하세요. 만약 계산식이 더하는것이라면... function Add(a,b ; integer) : integer; 이...
    • 이정욱
      1999.05.25 03:03
      쩝.. RxLib를 사용하세요. 그안에 RichEdit2 용 컴포넌트가 있습니다. 전진우 wrote: > TRichEdit...
    • 임태영
    • 1999.05.24 23:33
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 모승열
      1999.05.25 00:36
      임태영 wrote: > 안녕하세요,,, 임태영입니다. > > 서버에 있는 테이블을 사용하려고 할 때 User name...
    • 심인애
    • 1999.05.24 23:32
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 모승열
      1999.05.25 00:30
      심인애 wrote: > 전 대1 학생입니다 . > 교수님이 아래와같은 레포트를 내주셔서 고민하다 > 이렇게 ...
    • 김경수
      1999.05.25 07:25
      안녕하세요. 스택을 이용해 작성한 단순 무식하게 짠 진짜 간단한 계산기입니다. 그냥 참고로 보시라구...
    • 김경수
      1999.05.25 10:42
      안녕하세요. 화일이 업로드가 안되는것 같네요.. 그냥 복사해서 드립니다.초보라서..히 unit u_stack; ...
    • 우민석
    • 1999.05.24 23:31
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 변대섭
      1999.05.25 00:39
      우민석 wrote: > 제가 짜는 프로그램은 DBGrid을 이용하여 한 레코드 단위로 바로 바로 데이터 베이스을 A...
    • 박용근
    • 1999.05.24 22:49
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.25 00:20
      꼭 필요한것은 아닙니다. 공개된 시리얼 통신 컴포넌트를 사용하셔도 됩니다. 그런데 만약 ZModem같은 파...
    • 김병태
    • 1999.05.24 22:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.25 00:21
      이미 패치가 되어져 있는것으로 되어있습니다. 즉 해결이 되었다고 하더군요. 또 퀵리포트 정품을 사용하...
    • 고부성
    • 1999.05.24 21:25
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.25 03:16
      Edit46안에 숫자가 아닌다른문자를 쓰신것 같네요. 숫자만 변환이 가능해집니다. AccessViolation은 아...
    • 이기남
    • 1999.05.24 20:31
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.25 01:27
      모든DB파일이 같은디렉토리안에 있다면 특별히 알리아스를 변경하실 필요는 없을것 같습니다. TableName만...
    • 반정현
    • 1999.05.24 20:25
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 모승열
      1999.05.25 00:23
      반정현 wrote: > 저는 델파이 초보입니다. > > 시간함수 > time() > > 를 값으로 추출하여 ...
    • 이천주
    • 1999.05.24 20:04
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.24 22:17
      아래처럼 해보세요. 그냥 온라인상에서 바꿨으므로 약간의 수정이 필요할 수 있습니다. var netrc :...
    • 이천주
      1999.05.26 03:05
      "그냥 온라인상에서 바꿨으므로 약간의 수정이 필요할 수 있습니다." 그래서, 수정한 소스를 다른 분들을 ...