C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[39450] Re:Re:자바와 관련된 문의입니다..
김영민 [] 732 읽음    2005-03-10 19:04
답변 감사드립니다..
이것저것 해보다가 dll이나 com을 자바로 연결해주는 브리지를 찾았습니다.
그걸로 겨우겨우 연명하고 있습니다.
언어의 꽃이라는 C도 얼른 공부해야겠는데 말입니다..^^
능력이...
좌우지간 감사드리고, 좋은 하루 되세요..


김윤동.제라툴 님이 쓰신 글 :
: 질문하신 부분만 간단히 답해 드리겠습니다.
:
: [in] [out] 이런 표시들은 알아보기 쉽게 하기위해서 써놓은것입니다 .
:
: idl 파일에서 사용하기 위해서 그런것 같습니다.
:
: HRESULT VerifyLicense(
:                         [in] BSTR bstrName,
:                         [in] BSTR bstrKey,
:                         [out, retval] long* pbRetVal);
:
: BSTR은 유니코드를 지원하기 위해서 만들어진 포멧 즉 wide char pointer형입니다.
:
: wtypes.h 에 정의 되어 있을 겁니다.
:
: 또한  HRESULT 는 winnt.h에 포함 되어 있습니다.
:
: 지니를 한번도 안해 봐서 잘 모르겠습니다만. .
:
: 대강 읽어 보니 idl 로 정의된 interface를 통해서 c 코드를 호출하는 것같다는 생각이 ㅜ.ㅜ
:
: 조금 도움이 되셨으면 합니다.
:
: From Zeratul
:
: 김영민 님이 쓰신 글 :
: : 안녕하세요, C언어에 대해서 문의 드리고자 이렇게 글을 씁니다..^^
: : 아래의 파일은 자바의  JNI를 사용하기 위해서 필요한 C언어부분입니다.
: : JNI는 자바에서 만들지 않은 외부파일을 자바에서 쓰고자 할때 사용하는 인터페이스라는군요.
: : 이번에 dll파일을 자바에서 쓰고 싶어서 JNI를 공부했습니다만 C언어라는 난관에 부딪혀서 이렇게 도움을 구합니다.
: : 아래의 부분이 C언어 부분입니다.
: :
: : // NativeHello.cpp
: : //
: :
: : #include "stdafx.h"
: : #include "NativeHello.h"
: :
: : BOOL APIENTRY DllMain( HANDLE hModule,
: :                        DWORD  ul_reason_for_call,
: :                        LPVOID lpReserved
: :                     )
: : {
: :     return TRUE;
: : }
: :
: : ------------------------------------------------------------------------------------------
: : JNIEXPORT void JNICALL Java_NativeHello_SayHelloWorld(JNIEnv *, jobject)
: : {
: :     MessageBox(NULL, "java에서 호출한 messagebox", "Hello, World", MB_OK);
: : }
: : ------------------------------------------------------------------------------------------
: :
: : 위의 부분은 자동으로 생성이 되며 자바에서 만들어지는 이 부분  #include "NativeHello.h"만 추가해주면 됩니다
: : 문제는 -------- 실선사이에 있는 부분입니다.
: : 지금 보시는 부분은 win32 dll(맞나?)을 사용한 부분이며 JNI를 설명할 때 예제에서 흔히 나오는 부분입니다.
: :
: : 저는 MessageBox대신 아래의 VerifyLicense를 호출하고자 합니다.
: :
: : VerifyLicense부분
: : HRESULT VerifyLicense(
: :                         [in] BSTR bstrName,
: :                         [in] BSTR bstrKey,
: :                         [out, retval] long* pbRetVal);
: :                                                
: : VerifyLicense is the method must be called before all other methods.
: : It's to verify the run time license information.
: : @param BSTR bstrName: The register name
: : @param BSTR bstrKey:  The register key code.
: : @param long* pbRetVal: 1 If verify license cuccessfully.
: :                        0 If something wrong with the name/key
: :                        This variable always be set to 1 in trial version
: : @return S_OK
: :
: :
: : C 언어를 잘 모르므로 어디까지가 소스이며 골뱅이 부분(@부분)은 뭘 말하는지도..잘 모르겠네요.
: :
: : 어떤식으로 호출을 해야 할까요..?
: :
: : 저는VerifyLicense부분이 메소드라고 생각해서
: : HRESULT VerifyLicense(
: :                         [in] BSTR bstrName,
: :                         [in] BSTR bstrKey,
: :                         [out, retval] long* pbRetVal);
: :
: : 이렇게 넣었더니  [in]에서 에러가 발생…
: : 그래서 [in]을 삭제했더니 BSTR이 정의되지 않았다는 에러가 발생했습니다
: :
: : 그래서 에러가 나는 부분을 지우고 다시 컴파일을 해봤습니다.
: :
: : HRESULT VerifyLicense(BSTR bstrName, BSTR bstrKey, long* pbRetVal);
: :
: : 이렇게 만들어 넣어봤더니 에러가 3개가 뜨는군요
: : 1.    BSTR이 정의되어있지 않습니다.
: : 2.    구문에러 ;  ‘)’가 식별자’bstrName’의 앞에 필요합니다.
: : 3.    구문에러 ;  ')'
: :
: : 어떤식으로 해야할지 부탁드립니다.
: : Ps. HRESULT부분에서도 정의되지 않았다는 에러가 뜨겠지요?
: :      어디 부분에서 변수 정의를 해야 하는지요…
: :  
: : 장황한 글 읽어주시느라 수고하셨습니다.
: : 감사드립니다..
: : 이왕이면 그냥 가지 마시고 힌트라도 휙 던져주고 가시기 바랍니다..
: : 항상 즐거운 일 있으시길..

+ -

관련 글 리스트
39423 자바와 관련된 문의입니다.. 김영민 793 2005/03/09
39436     Re:자바와 관련된 문의입니다.. 김윤동.제라툴 847 2005/03/09
39450         Re:Re:자바와 관련된 문의입니다.. 김영민 732 2005/03/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.