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
[39436] Re:자바와 관련된 문의입니다..
김윤동.제라툴 [zeratul] 847 읽음    2005-03-09 18:44
질문하신 부분만 간단히 답해 드리겠습니다.

[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:자바와 관련된 문의입니다.. 김영민 733 2005/03/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.