JAVA가 호출하는 DLL을 작성하기 위한 VC 구현 방법
VC를 사용하여 JAVA 호출용 DLL을 작성하는 방법
}(2) java 파일을 컴파일한 후 헤더 파일을 컴파일 및 생성(vc용) javac GB2PY.java //클래스 컴파일 및 생성 (3) 현재 폴더에 com/bw/gb2py 폴더를 생성하고 add GB2PY.class 폴더에 넣고 현재 폴더로 돌아가서 javah 명령을 호출하여 헤더 파일을 생성합니다. javah com.bw.gb2py.GB2PY //헤더 파일을 생성합니다. 파일 이름은 com_bw_gb2py_GB2PY.h입니다. 헤더 파일의 내용은 변경할 수 없습니다. 그렇지 않으면 생성된 dll을 사용할 수 없습니다. (4) 새 Win32 dll을 생성합니다. VC에서 GB2PY라는 프로젝트를 만들고 com_bw_gb2py_GB2PY.h를 프로젝트 디렉터리에 복사하여 프로젝트에 추가합니다. 그런 다음 %JAVA_HOME%/include/jni.h 및 %JAVA_HOME%/include/win32/jni_md.h를 프로젝트 디렉터리에 복사하고 프로젝트에 추가합니다. (5) com_bw_gb2py_GB2PY.h: Java_com_bw_gb2py_GB2PY_GetPY에 선언된 메서드를 구현합니다. c에서 Java 문자열과 문자의 변환에 주의하세요. Java의 문자열은 유니코드(더블바이트)로 인코딩되는 반면 char은 싱글바이트입니다. int (*GetPY)(char* szGBString,PY &oPY);JNIEXPORT jstring JNICALL Java_com_bw_gb2py_GB2PY_GetPY
(JNIEnv * env, jclass, jstring name){static HMODULE hModle = LoadLibrary("PYconvert.dll") //타사 dll
GetPY = (LPFUN)GetProcAddress(hModle,"GBToPY");int len;char charName[128];
char charPY[512];
len = env->GetStringLength(name) * 2 + 1; //2바이트 길이를 1바이트 길이로 변환하고 종결자를 추가하려면 1을 추가하세요
memset(charName, 0, len);
const wchar_t * w_buffer = env->GetStringChars(이름, 0);
int wlen = wcslen(w_buffer);
len = WideCharToMultiByte(CP_ACP, 0, w_buffer, wcslen(w_buffer) + 1, charName, len, NULL, NULL);
env->ReleaseStringChars(name, w_buffer); //위 코드는 java 문자열 이름의 내용을 char 배열 charName에 복사합니다... //일부 함수 코드를 생략하고 타사 dll을 호출하여 한자를 병음으로 변환합니다. charPY 배열에 저장된 함수 int slen = strlen(charPY);
jchar * 버퍼 = 새로운 jchar[slen];
len = MultiByteToWideChar(CP_ACP, 0, charPY, strlen(charPY), buffer, slen);
if (len > 0 & len
buffer[len] = 0; //위 코드는 char 유형 문자열을 jchar 유형 문자열로 변환합니다. jstring js = env->NewString(buffer, len);
delete [] buffer; return js;} (6) Java에서 호출할 수 있는 dll 파일을 컴파일하고 생성합니다(두 번째 단계에서 생성된 클래스를 사용해야 합니다)! :)
VC가 작성한 EXE 파일에 대한 DLL 파일을 작성하고 이 EXE가 DLL을 호출하도록 하는 방법
dll을 작성하는 방법을 말씀하시나요? , 아니면 작성한 DLL을 어떻게 호출하나요?
dll:vc++6.0을 작성하는 방법은 무엇입니까? 새 프로젝트를 만들 때 일반적으로 다음 중 하나를 선택합니다.
MFC AppWizard[dll]은 MFC 프레임워크의 동적 링크 라이브러리를 사용할 수 있습니다
Win32 동적 링크 라이브러리 window32비트 표준 동적 라이브러리
그런 다음 필요한 프레임워크를 선택하고 완료하면 기본 DLL이 준비됩니다.
vs2003 이상이면(vs2010은 사용하지 않았기 때문에 언급하지 않겠습니다), 새로 만드세요
엔지니어링에는 일반적으로 두 가지 유형이 사용됩니다.
MFC->MFC Dll
Win32->모든 항목->팝업 대화 상자에서 Dll 옵션을 선택하세요
다른 옵션은 필요에 따라 다릅니다. 그러면 완료되었으며 기본 DLL이 준비되었습니다.
작성한 dll 호출: 호출해야 하는 곳에 LoadLibrary("xxx.dll")를 사용하세요.
xxx.dll은 당신이 작성한 dll이고, xxx.dll에 썼다면
인터페이스의 경우 다음 메서드를 사용하여 dll에서 메서드를 호출할 수 있습니다.
1. exe 프로젝트에 dll의 인터페이스 헤더 파일을 포함합니다. 예를 들어 인터페이스 함수는 void FunName(int a);
2.typedef void(*Func)(int) //인터페이스 정의
3. 필요한 경우 사용:
...........................
HMOUDLE hMyDll = LoadLibrary("xxx.dll");
if (hMyDll != NULL)
{
Func *pDllFun=(Func *)::GetProcAddress(hMyDll,"FunName");//FunName은 Dll의 인터페이스 함수입니다
if (pDllFun != NULL)
{
pDllFun(1); //Dll에서 함수 호출
}
}
4. 더 이상 필요하지 않은 DLL을 제거합니다. FreeLibrary(hMyDll);
/////////////////////////////////////////////// /// /////
exe가 위치한 디렉터리에 Dll이 생성되었나요?
위 내용은 JAVA가 호출하는 DLL을 작성하기 위한 VC 구현 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Windows 설정에서 Drive Health 경고는 무엇을 의미하며 디스크 경고를받을 때 어떻게해야합니까? 이 PHP.CN 튜토리얼을 읽고이 상황에 대처할 수있는 단계별 지침을 얻으십시오.

기사는 Windows 레지스트리 편집, 예방 조치, 백업 방법 및 잘못된 편집의 잠재적 문제에 대해 설명합니다. 주요 이슈 : 부적절한 변화로 인한 시스템 불안정성 및 데이터 손실의 위험.

기사는 시작, 중지, 서비스 재시작 및 안정성 모범 사례를 포함하여 시스템 건강을위한 Windows 서비스 관리에 대해 논의합니다.

증기 구름 오류는 여러 가지 이유로 인해 발생할 수 있습니다. 게임을 원활하게 플레이하려면 게임을 시작하기 전에이 오류를 제거하기 위해 몇 가지 조치를 취해야합니다. Php.cn Software는이 게시물에서 가장 유용한 정보뿐만 아니라 몇 가지 최선의 방법을 소개합니다.

"WMI (Windows Metadata and Internet Services)와의 연결을 설정할 수 없음"을 볼 수 있습니다. 이벤트 뷰어의 오류. Php.cn 의이 게시물은 Windows 메타 데이터 및 인터넷 서비스 문제를 제거하는 방법을 소개합니다.

기사에서는 회복 및 대량 변경을 포함하여 Windows의 파일 유형에 대한 기본 앱 변경에 대해 설명합니다. 주요 이슈 : 내장 벌크 변경 옵션 없음.

KB5035942 업데이트 문제 - 충돌 시스템은 일반적으로 사용자에게 발생합니다. 가려진 사람들은 충돌 시스템, 설치 또는 건전한 문제와 같은 문제에서 벗어날 수있는 방법을 찾기를 희망합니다. 이러한 상황을 목표로,이 게시물은 Php.cn Wil이 게시했습니다

이 기사는 시스템 설정을 관리하기 위해 Windows에서 그룹 정책 편집기 (GPEDIT.MSC)를 사용하는 방법을 설명하고 일반적인 구성 및 문제 해결 방법을 강조합니다. gpedit.msc는 Windows 홈 에디션에서 사용할 수 없다고 제안합니다.
