2011-02-11 3 views
0

여러 장치 유형을 처리하는 Windows 드라이버를 상속 받았습니다. 두 개의 분리 된 드라이버 (각 장치마다 하나씩)로 분리해야합니다. 각 장치에 대한 코드가 있고 두 코드에 공통적 인 코드가 있으므로 deviceA, deviceB 및 common이라는 3 개의 디렉토리를 만들었습니다.소량의 공유 코드로 2 개의 장치 드라이버를 작성하는 방법

1.이 방법으로 드라이버 소스를 구분하는 것이 더 확실합니다. 2. build.exe에는 'sources'파일이 필요하므로 별도의 파일을 가질 수 없습니다. 동일한 디렉토리에있는 2 명의 드라이버에 대해

Visual Studio를 사용하여 ddkbuild.bat를 호출하면 내 빌드가 비참하게 실패합니다.

시도하는 방식으로 가능합니까? 더 나은/더 똑똑한 방법이 있습니까?

소스을 각 장치 하위 디렉토리에서 수정했습니다. 나도 모르겠다 무슨 공통 파일에 대해 할 일.

Visual Studio 2008을 사용하여 ddkbuild, DDK 7600.16385.0을 사용하십시오.

+0

공통 디렉토리의 소스에 대해 무엇을 했습니까? 빌드가 어떻게 실패 했습니까? 이것이 작동하지 않는 데에는 많은 이유가 있습니다. 우리는 어떤 종류의 대답을 제공하기 위해보다 구체적인 정보가 필요합니다. – Michael

+0

나는 common/sources *를 위해 (아직) 아무 것도하지 않았다. 내 driverUSB는 전혀 컴파일되지 않습니다. 지금은 driverUSB가 컴파일되지만 공통으로 이동 한 파일로 인해 링크되지 않습니다. 그래서 지금 내 질문은 짐작된다. ** 공통점/근원 *에 대해 ** 무엇을해야 하는가? * sources *는 build.exe를 사용한다는 것을 암시합니다.이 파일은 ddkbuild.bat를 의미합니다. – halm

답변

1

이 문제를 해결하려면 정적 라이브러리를 사용하십시오. ddkbuild.bat에 대해 확실하지 않습니다. DDK 명령 프롬프트를 열고 build -C -Z을 입력하면 어떻게됩니까?

+0

답변 해 주셔서 감사합니다. "비참하게 실패합니다."아마도 도움이되지 않았습니다 (저는 6000+ 오류가있어서 좌절했습니다). 컴파일 오류는 대부분 내 오류였습니다. 1 - 헤더를 3 (일반, A와 B, A와 B는 공통 # 포함)로 분할했지만 일부 소스 파일을 변경하여 각 헤더를 포함하지 않았습니다. , 2 - 나는 VC++에게 nmake에 대한 추가 경로 인수에 대해 말하지 않았고, 3 - build.exe가 공백이있는 경로명 ("Documents and Settings")을 갖고 싶지 않다는 것을 웹에서 발견했다. 이제 폴 (Paul)이 제안한 공용 정적 라이브러리에 대한 작업. – halm

+0

다시 한 번 감사드립니다 ... 아직 새 드라이버를 설치 및 테스트하지는 않았지만 두 가지 모두 정상적으로 작동합니다. 제안한대로 공유 코드에 대한 정적 lib를 만들고 개별 드라이버를이 코드와 연결했습니다. – halm

관련 문제