둘리.CSIEDA 님 이렇게 매번 답변을 주셔서 정말 감사합니다.
계속 일을 진행 중이였는데 Ace4.dll파일을 implib를 통해 lib를 생성해 이 경로를 library경로에 등록 해주고 include에 DDC API의 include경로를 설정해 주었습니다. 그러니 cpp파일에서 API들을 불러오는 것까지는 되는 됩니다. 그런데 몇개의 API를 설정 후 build를 하면 linker에러가 발생합니다.
[Linker Error] Unresolved external '_acexMRTConfigure' referenced from C:\USERS\SSKIM\DESKTOP\WORKING_FOLDER\LIS_SW\DEVELOPMENTS_140724_1010\LIS\OUTPUT\LIB\LIS_DDC.LIB|ddc_mrtop
아래와 같은 에러가 발생하는돼 이 부분에서 도 찾아보니 path설정이 잘못됐다거나 borland서 지원을 안하고 하는거 같은데 acexMRTConfigure르르 주석처리를 했는데도 계속 같은 에러가 발생합니다.
마지막으로 ace4.lib파일을 혹시 제가 만든 프로젝트안에 넣어 두고 이 곳을 패스로 설정해야하나요?
아님 borland가 설치된 곳에 프로젝트에 넣어 두고 그곳을 패스로 설정해야아하나요?! 잘 이해가 안되서 그럽니다.
둘리.CSIEDA 님이 쓰신 글 :
: Ace.lib 를 C++ Builder Project에 추가해서 컴파일 해보세요.
: 오류가 나면 VisualC++ 용 라이브러리일 가능성이 높습니다.
:
: 그렇다면
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=116 여기를 참조하셔서
: implib 로 import library를 다시 만드셔서 해보시길 바랍니다.
:
: implib는 100% 보장은 없습니다만 ,일단 시도를 해보시기 바랍니다.
:
: 만약에 implib 로 처리가 안된다면 .lib 는 무시하시고 .dll 파일만을 사용하는 것으로 생각하시면 됩니다.
:
: dll 파일을 LoadLibrary 로 읽어서 필요한 함수들(header가 있으니 추적은 가능하시리라 생각됩니다만) wrapper 코드를 만드셔서 사용하실수는 있읍니다만 dll 의 동적사용에 대한 지식이 어느정도 있으셔야 합니다.
:
: 문제가 해결되셨으면 합니다.
:
:
: 초심자6 님이 쓰신 글 :
: : 일단 SDK에서 설치된 것 중에서 사용하는 것은 Include폴더 및 library입니다.
: : 일단 SDK설치 된 폴더안의 구성은 첨부그림 중 Main그림처럼 되어 있습니다.
: : 이중에서 제거 경로로 Path등록을 해놓은 것은 Include폴더와 AceLibrarySupport폴더 안에 Include폴더 입니다.
: : (이 부분에 대한 이미지도 첨부 해 놓음) Include안에는 모두 ".h"파일들만 존재합니다.
: :
: : 이렇게 두개의 경로를 추가하고 있습니다. 그런데 lib폴더 안에 WIN32와 x64두개의 폴더로 나눠지는데 일단 이부부도 경로 추가를 해놓았습니다.
: :
: : 근데 제가 갑자기 궁금해 진 사항은 혹시 AceLibrarySupport안에 AceLib폴더가 있고 이 안에 Ace.dll, Ace.lib가 존재하는데 혹시 이것을 borland용으로 다시 lib를 만들어 줘여 할까요?
: :
: :
: :
: : 둘리.CSIEDA 님이 쓰신 글 :
: : : aceXtremeSDK 를 구글로 찾아 홈페이지에 들어가보니 정보를 오픈하지 않는 사이트더군요.. 구매를 하셨다면 해당 api 메뉴얼이 있는거 같은데(다운받으려니 등록하고 하라네요) 그걸 받으셔서 셈플이 있을듯 합니다.
: : :
: : : 아마도 장비를 컨트롤하는 C API를 제공하는것 같은데요. 제공하는 업체에서의 사용 스펙을 받으셔야 합니다.
: : :
: : : 1. Full source로 제공되는지
: : : 2. Static Library 로 제공되는지
: : : Static Library일 경우 Borland (Radstudio) 용으로 제공되는지.. (Visual 용으로 제공할 수 도 있습니다)
: : : 3. Dynamic Library 로 제공되는지
: : : 4. COM 같은 ActiveX로 제공되는지...
: : : 5. VCL 로 제공되는지.
: : : 6. .Net으로 제공되는지. (C API라니까 이것은 아니겠지만)
: : :
: : : 등등등....
: : :
: : : 을 알아야 합니다.
: : :
: : : 가능하면 해당 업체에 문의를 해보시는것이 어떠실지요.
: : :
: : :
: : : C++ Builder로 컴파일하시는거라면 나오는 에러 메시지를 그대로 올려줘 보세요...
: : :
: : : 에러의 형태를 봐야 뭔가 알수가 있겠지요???
: : :
: : :
: : :
: : :
: : :
: : :
: : :
: : : 초심자6 님이 쓰신 글 :
: : : : 음..제가 사용하려는 것은 1553통신관련된 API입니다.
: : : : 이 API가 C:\DDC\aceXtremeSDKv3.6.4\Include안에 설치가 되어 있는데 이것을 아래의 Project Manager의 ddc_mrtop.c에서 사용하려고 합니다. 그런데 Path설정이 잘 못된것인지 잘안되더라구요.. 그래서 제가 path설정을 잘 못하는 것인지 한번 확인 부탁드리는 것입니다. 더불어 방법을 알려면 방법도 알려주시면 감사합니다.
: : : :
: : : : 둘리.CSIEDA 님이 쓰신 글 :
: : : : : OpenCV 가 BPL Package 인가요?
: : : : :
: : : : : 외부 API라는것이 정확히 무엇을 말씀하시는지 애매 합니다. VCL 라이브러리인지 DLL 인지 그냥
: : : : :
: : : : : 만약 vcl 이면 해당 bpi 파일을 프로젝트에 추가해보세요...
: : : : :
: : : : :
: : : : :
: : : : : 초심자6 님이 쓰신 글 :
: : : : : : 둘리님 일단 답변은 감사합니다.
: : : : : : 그런데 제가 궁금한 사항은 그 부분이 아닙니다. 1,2,3,4,5 라는 static lib를 DCC.lib 에 연결하는 것이 아니라
: : : : : : 아예 다른 API를 연결하는 것입니다. OpenCV를 쓴다거나 할때 해당 기능을 쓰기 위한 API를 Path등록 하듯이 외부에서 다운 받은 API를 연결 하고 싶은 것입니다.
: : : : : :
: : : : : : 둘리.CSIEDA 님이 쓰신 글 :
: : : : : : : 1,2,3,4,5 라는 static lib를 DCC.lib 에 연결하고 싶으신듯 합니다.
: : : : : : :
: : : : : : : 그럴려면 각 lib를 DCC.lib project에 추가해 주세요... 아니면 #link 로 추가하셔도 되고요.
: : : : : : :
: : : : : : :
: : : : : : : 초보자6 님이 쓰신 글 :
: : : : : : : : 프로그램 개발 중에 외부API들을 불러서 사용하는 것을 진행 중인데
: : : : : : : : 계속 library Path등록 문제로 오류가 나네요..
: : : : : : : : 프로젝트 매니저의 경우 아래와 같은 형태로 구성이 되어 있습니다.
: : : : : : : : DDC부분이 제가 외부 API를 추가하는 부분입니다.
: : : : : : : :
: : : : : : : : +-----------------------+
: : : : : : : : | Project Manager |
: : : : : : : : +-----------------------+
: : : : : : : : | Engine |
: : : : : : : : | L 1.lib |
: : : : : : : : | L 2.lib |
: : : : : : : : | L 3.lib |
: : : : : : : : | L 4.lib |
: : : : : : : : | L 5.lib |
: : : : : : : : | L DDC.lib |
: : : : : : : : | L ddc_common.c |
: : : : : : : : | L ddc_common.h |
: : : : : : : : | L ddc_mrtop.c |
: : : : : : : : | L ddc_mrtop.h |
: : : : : : : : +-----------------------+
: : : : : : : :
: : : : : : : : 그래서 DDC.lib의 옵션에서 Directories/Conditionals에서
: : : : : : : : Include와 Library Path를 외부 API의 경로로 잡아 주었는데
: : : : : : : : library Path오류가 발생합니다. 저번에도 한번 질문을 드렸지만 잘 모르겠고 계속
: : : : : : : : 같은 문제가 발생하여 다시 한번 질문을 드립니다.
: : : : : : : :
: : : : : : : :
: : : : : : : : ========================== Include Path ==============================
: : : : : : : : C:\DDC\aceXtremeSDKv3.6.4\Include
: : : : : : : : C:\DDC\aceXtremeSDKv3.6.4\AceLibrarySupport\Include
: : : : : : : : C:\DDC\aceXtremeSDKv3.6.4\Lib\Win32\Release
: : : : : : : : C:\DDC\aceXtremeSDKv3.6.4\Lib\Win32\Debug
: : : : : : : : ..\source\DDC
: : : : : : : : $(BCB)\include
: : : : : : : : $(BCB)\include\vcl
: : : : : : : : =====================================================================
: : : : : : : :
: : : : : : : : ========================== library Path ================================
: : : : : : : : C:\DDC\aceXtremeSDKv3.6.4\Include
: : : : : : : : C:\DDC\aceXtremeSDKv3.6.4\AceLibrarySupport\Include
: : : : : : : : C:\DDC\aceXtremeSDKv3.6.4\Lib\Win32\Release
: : : : : : : : C:\DDC\aceXtremeSDKv3.6.4\Lib\Win32\Debug
: : : : : : : : ..\source\DDC
: : : : : : : : =====================================================================
: : : : : : : :
: : : : : : : : 각 Path들은 현재 저렇게 등록을 해 두었습니다.
: : : : : : : : 혹시 보시고 잘 못 된 부분이나 추가적으로 더 해야 하는 부분이 있다면 의견을 좀 주시기 바랍니다.
: : : : : : : : 제가 너무 초보라 자꾸 반복적인 질문인거 같습니다. 그래서 좀더 자세한 답변을 주셨으면 합니다.
: : : : : : : :