2014-01-16 4 views
0

Visual C++로 만든 형식 라이브러리가 있는데 그 함수를 VBA에서 호출하려고합니다. 두 파일 : utility.dllutility.tlb이 있습니다. 참조로 이동하여 utility.tlb으로 이동하여 VBA 프로젝트에 라이브러리에 대한 참조를 포함 시켰습니다.형식 라이브러리를 사용하려고하지만 파일을 찾을 수 없음 오류가 발생했습니다.

File not found: utility.dll 

내가 VBA 프로젝트가있는 .xlsm 파일과 같은 디렉토리에 두 라이브러리 파일에 놓여있다 : 나는이 프로젝트를 컴파일 할 때, 나는 오류 메시지가 표시됩니다. 나는 그것이 DLL 등록 문제이었다 어쩌면 생각했다, 그래서 나는 utility.dllregsvr32를 실행하려고 다음과 같은 오류 메시지가있어 다음 C++ 프로젝트에 대한

The module "utility.dll" may not compatible with the version of Windows 
that you're running. Check if the module is compatible with an x86 (32-bit) 
or x64 (64-bit) version of regsvr32.exe. 

나는 소스 코드에 액세스 할 수,의 .sln 파일 등을 그 라이브러리 파일을 만들었습니다.

VBA 프로젝트에서이 유형 라이브러리를 사용할 수있게하려면 다음해야 할 일은 무엇입니까?

+0

대신 c : \ windows \ syswow64 \ regsvr32.exe를 사용하십시오. –

+0

@HansPassant, 그것은 나에게'may not compatible' [sic]에 대한 동일한 응답을주었습니다. – sigil

+0

Visual Studio에서 솔루션 속성으로 이동하여 빌드 탭에서 플랫폼을 선택합니다. 64 비트 사무실 용 64 비트 클래스 라이브러리 인 경우 CPU 대신 플랫폼 대상으로 'x64'를 선택하십시오 –

답변

0

문제는 형식 라이브러리에 개발 컴퓨터에만 있던 폴더에 DLL 검색 경로가 하드 코드되어 있다는 것이 었습니다. 이를 변경하면 오류가 제거됩니다.

관련 문제