2013-02-07 3 views
2

VC++ 2010에 아주 간단한 xll 파일을 작성했고 Excel 2007이 Excel 2007입니다. 라이브러리에는 하나의 함수 만 포함되어 있습니다 :"addin.XLL이 다른 형식 임"문제, 내가 직접 만든 xll을 열 수 없습니다.

extern "C" LPXLOPER12 WINAPI tsMkErr() { 
    static XLOPER12 x; 
    x.xltype = xltypeErr; 
    x.val.err = xlerrNull; 
    return &x; 
} 

및 필요한 xlAutoOpen 함수. 나는 dll 파일을 컴파일하고, xll로 이름을 바꾸고, Excel에서 열려면 더블 클릭하십시오. 모든 것이 예상대로 작동합니다. 나는 다른 PC에이 파일을 열하려고하면

그러나, 엑셀은 나에게 말하고 계속 그 : 지정된 것보다, 다른 형식으로

파일은, 열려고하는 '.xll' 파일 확장명으로. 파일을 열기 전에 파일이 손상되지 않았고 신뢰할 수있는 출처인지 확인하십시오. 지금 파일을 열시겠습니까?

예를 클릭하면 쓰레기가 튀어 나옵니다.

또한 추가 기능 관리자를 통해로드하려고했습니다. 이 경우 파일을 열 수 있지만 tsMkErr() 함수를 찾을 수 없습니다.

나는 모든 제안을 감사하겠습니다 ...

은 BTW, 난 정말 대답으로 답변을 선택하는 방법을 모르겠어요. 어떻게하는지 알고 있다면 알려주세요.

... 이번 주에 내 도구를 게시 할 예정입니다 ... 이제는 내 PC에서만 작동한다는 것을 알았습니다 ... 도와주세요. .. T_T

답변

0

가능한 이유는 종속성 (crt dlls 등)이 누락되었을 수 있습니다. 종속성 워커 도구를 사용하여 확인할 수 있습니다.

1

주요 이유는 다음과 같습니다

  1. 당신이 잘못된 구조를 가진 XLL을 열려고 (예 : 엑셀 64 비트와 32 비트 XLL).

  2. 일부 외관의 DLL이 누락 (참조 종속성 워커 도구) 디버그 모드에서 빌드하고 Visual Studio를 통해 열려고 시도하는 경우 환경 경로 변수를 사용할 수없고 xll에 일부 DLL이 누락되어 있습니다. 당신이 디버그 모드에서 솔루션을 구축하는 것 같은

0

는 것 같습니다. 디버그 모드에서 솔루션을 빌드하면 Visual Studio가 xll을 다른 컴퓨터에 거의 설치되지 않은 디버그 라이브러리와 연결합니다. 따라서 빌드 구성을 릴리스으로 설정하고 다른 컴퓨터에서 작동해야합니다 (정상적인 ms C++ 재배포 가능 라이브러리가 설치된 경우).