Visual Studio 2005 yerine kullanıcı alanı uygulama oluşturmak için Windows Sürücü Seti'ni (WinDDK 6001.18001) kullanıyorum. Bu yaklaşımı alıyorum çünkü sürücü bileşenlerini de oluşturmamız gerekiyor, bu yüzden tek bir yapı ortamına sahip olmayı tercih ediyorum. herşeyi inşa et. Microsoft, bu yaklaşımı birkaç ürün için kullanıyor.Uygulamalar için WDK derleme ortamında destek kullanmak?
Bu Boost 1.38.0 kullanmaya başlamadan iyi çalışıyordu. Çekirdek modu bileşenlerinde C++ kullanmıyorum, sadece kullanıcı alanı uygulamaları. C++ kodunda, destek kitaplıklarını kullanmak doğaldır. Ne yazık ki, WDK aynı fikirde değil.
ettim ilk hatası "#include < > cstddef" boost\lambda\detail\operator_return_type_traits.hpp
birkaç hataları bu çevrede çalışma Ek D'gerektirdiği sol görünüyor olarak yaklaşık error C2976: 'std::basic_string' : too few template arguments.
O iostream ile gereksiz görünür std ad alanında ptrdiff_t
koymak olmamasıdır .
Herkes birlikte çalışmak için Boost, iostream ve WDK kombinasyonunu başarıyla aldı mı?
Muhbirlerimin dosyası:
TARGETNAME=foobar
TARGETTYPE=PROGRAM
USE_MSVCRT = 1
USE_STL = 1
USE_ATL = 1
ATL_VER = 30
STL_VER = 70
USE_NATIVE_EH = 1
USE_IOSTREAM = 1
SUBSYSTEM_VERSION = 5.02
C_DEFINES = \
-D_MT \
-DWIN_32 \
-DWIN32 \
-D_WINDOWS \
-DNT \
-D_WIN32_DCOM \
-DUNICODE \
-D_UNICODE \
-D_ATL_NO_DEBUG_CRT # because we are using USE_MSVCRT=1
SOURCES=service.cpp
INCLUDES=\
$(BOOST_INC_PATH)
TARGETLIBS=\
$(SDK_LIB_PATH)\ole32.lib \
$(SDK_LIB_PATH)\oleaut32.lib \
$(SDK_LIB_PATH)\uuid.lib \
UMTYPE=console
UMBASE=0x400000
service.cpp:
#include <iostream>
#include <cstddef>
namespace std {
typedef ::ptrdiff_t ptrdiff_t; // DDK C++ workaround
}
#include <boost/lambda/lambda.hpp>
int __cdecl main() {
return 0;
}
Deneyiminizi paylaştığınız için teşekkür ederiz. Msvcrt yerine USE_LIBCMT = 1 kullanmayı denedim, ancak sorunlar devam etti. STL'nin bile sorunlu olduğu düşünüldüğünde, WDK'yı tekrar gözden geçirmem gerekecek. –
Uygulama bölümümüzü w/VS200x ve sürücüyü sadece WDK ile oluşturuyoruz. Not, ddkbuild yardımcı programı sadece komut satırı argümanları üzerinde bir sarmalayıcı toplu iş dosyasıdır (her zaman kullanırım) ve muhtemelen derleyici sorunlarının çözülmesine yardımcı olmaz. – dirkgently
Ben sürücü için ddkbuild kullanmak ve uygulamayı oluşturmak için standart vs proje kullanarak önerdi. Projelerden birinin (sürücü) ddkbuild ve ikincisi (Yükseltme) kullanılarak özel derleme ile oluşturulacak bir çözümünüz olacak. – Ilya