VB 프로그래밍에서 타사 컨트롤을 사용할 때 프로그램은 시스템 디렉터리나 프로그램 디렉터리에서 사용되는 타사 컨트롤을 찾을 수 있어야 합니다. 일반적으로 두 가지 방법이 있습니다. 하나는 컨트롤과 프로그램을 압축된 패키지로 만들어 배포하는 것입니다. 이 방법의 단점은 프로그램 전파 과정에서 컨트롤 파일이 손실될 수 있다는 것입니다. 두 번째는 설치 프로그램을 만드는 것인데, 제작 과정이 번거롭다는 점이 단점이다. 이 문서에서는 프로그램이 실행된 후 컨트롤을 사용하기 전에 프로그램에 타사 컨트롤을 저장하는 방법에 대해 설명합니다. 파일.
구체적인 단계는 다음과 같습니다:
1단계: 사용할 컨트롤을 현재 프로젝트 디렉터리에 복사하고 컨트롤을 마우스 오른쪽 버튼으로 클릭한 다음 속성을 선택하고 파일 크기를 확인합니다. 프로그래밍 목적으로 K 개수가 아닌 특정 숫자를 바이트 단위로 기록해야 합니다.
2단계: 컨트롤을 정상적으로 참조하고 사용하십시오.
3단계: 새 리소스 파일을 생성하고 이를 프로젝트에 추가합니다. 리소스 파일 편집기에서 사용자 지정 리소스(CUSTOM)로 사용되는 타사 컨트롤을 리소스 번호로 사용합니다. 여러 컨트롤을 사용하는 경우 리소스 파일의 리소스 항목 101, 102...에 각각 추가하고 이에 따라 쉘링 코드도 수정해야 합니다.
4단계: 리소스 파일의 데이터를 읽고 프로그램의 현재 디렉터리에 컨트롤을 생성하는 컨트롤 쉘링 코드를 작성합니다.
코드는 다음과 같습니다:
Const OCXSIZE = 57344 '생성할 컨트롤의 크기는 57344Byte, 이름은 CoolToolBar.ocx 입니다.
서브메인()
Dim Ocx() As Byte 'OCX는 Btye 유형의 배열입니다.
오랫동안 희미한 카운터
Ocx = LoadResData(101, CUSTOM) '사용자 지정 리소스의 101번 리소스를 배열 OCX로 읽어옵니다.
'Microsoft 도움말에서 사용자 정의 리소스를 로드하는 방법에 대한 지침에 오류가 있습니다. 사용자 정의 리소스는 도움말에 언급된 숫자 10 대신 CUSTOM으로 식별됩니다.
If Right(App.Path, 1) = ($%$43%^#ASD#2@$#f$%^) Then '프로그램의 경로를 읽고 루트 디렉터리인지 확인하여 별도로 처리합니다.
'프로그램이 루트 디렉터리에 있습니다.
If Dir(App.Path & CoolToolBar.ocx) = Then '프로그램 경로에 컨트롤이 있습니까? 없으면 컨트롤이 생성됩니다.
'메인 프로그램이 위치한 디렉토리에 바이너리 모드의 컨트롤(CoolToolBar.ocx)을 작성(생성)합니다.
바이너리용 App.Path 및 CoolToolBar.ocx를 #1로 엽니다.
For Counter = 0 To OCXSIZE - 1 ' 0 Byte부터 시작하므로 파일 크기 - 1Byte가 최종 값이 됩니다.
#1, , Ocx(카운터) 넣기
다음 카운터
#1 닫기
다음과 같은 경우 종료
또 다른
'프로그램이 루트 디렉터리에 없습니다.
If Dir(App.Path & /CoolToolBar.ocx) = Then '프로그램 경로에 컨트롤이 있습니까? 없으면 컨트롤이 생성됩니다.
'메인 프로그램이 위치한 디렉토리에 바이너리 모드의 컨트롤(CoolToolBar.ocx)을 작성(생성)합니다.
바이너리의 경우 App.Path & /CoolToolBar.ocx를 #1로 엽니다.
For Counter = 0 To OCXSIZE - 1 ' 0 Byte부터 시작하므로 파일 크기 - 1Byte가 최종 값이 됩니다.
#1, , Ocx(카운터) 넣기
다음 카운터
#1 닫기
다음과 같은 경우 종료
다음과 같은 경우 종료
Form1.Visible = True '메인 프로그램에 사용되는 컨트롤이 생성되었으며, 메인 폼을 표시하고, 메인 프로그램에 들어갑니다.
서브 끝
참고: 위 코드를 프로젝트에 모듈로 추가하고, 위 쉘링 코드인 프로젝트-프로젝트 속성 설정에서 시작 개체를 Sub Main으로 선택합니다. 그런 다음 EXE 파일을 컴파일 및 생성하고, 해당 EXE 파일을 컨트롤이 설치되지 않은 다른 컴퓨터에 복사한 후 실행하여 컨트롤 이식성이 달성되는지 확인합니다.