mekakic
2013-05-22, 15:42:54
Hi.
Ich verwende u.a. einige Calls wie GetThreadId(), die wie ich erst vor kurzem rausgefunden habe Windows XP ausschließen. Ich konnte den Code entsprechend auch unter Windows XP substituieren... das Problem ist eher der Build bzw. das ich beides unterstützen möchte, um ggf. den WinXP Teil auch irgendwann mal zu entfernen.
Ich habe nach einem #pragma Call gesucht, um hier abhängig von der Windows Version unterschiedlichen Code zu erzeugen. Irgendwie will es mir nicht gelingen nachdem ich lange mit WINVER & Co rumgespielt habe und das Problem ist (glaub ich), dass dies eher ein Laufzeit-Feature als ein Compile Feature ist. Jetzt frage ich mich, wie ich das zur Laufzeit machen kann? Muß ich WINVER nur setzen, wenn ich verhindern will, dass der Code hier compiliert?
Die Anwendung soll auf Win7 und Windows XP bauen und zur Laufzeit den für die Plattform korrekten Code ausführen... mit der Einschränkung dass ein Build auf einer XP Plattform nur den legacy Code reinbauen sollte:
#if WINVER >= 0x0502
if( windowsversion >= 0x0502 ) {
GetThreadId(...)
} else {
#endif
myGetThreadId(...)
#if WINVER >= 0x0502
}
#endif
Hat jemand eine Idee, wie man das macht? Ich bastel schon länger an seltsamen Konstrukten wie diesem herum, aber immer mit dem Gefühl, dass das doch einfacher gehen müsste?
Ich verwende u.a. einige Calls wie GetThreadId(), die wie ich erst vor kurzem rausgefunden habe Windows XP ausschließen. Ich konnte den Code entsprechend auch unter Windows XP substituieren... das Problem ist eher der Build bzw. das ich beides unterstützen möchte, um ggf. den WinXP Teil auch irgendwann mal zu entfernen.
Ich habe nach einem #pragma Call gesucht, um hier abhängig von der Windows Version unterschiedlichen Code zu erzeugen. Irgendwie will es mir nicht gelingen nachdem ich lange mit WINVER & Co rumgespielt habe und das Problem ist (glaub ich), dass dies eher ein Laufzeit-Feature als ein Compile Feature ist. Jetzt frage ich mich, wie ich das zur Laufzeit machen kann? Muß ich WINVER nur setzen, wenn ich verhindern will, dass der Code hier compiliert?
Die Anwendung soll auf Win7 und Windows XP bauen und zur Laufzeit den für die Plattform korrekten Code ausführen... mit der Einschränkung dass ein Build auf einer XP Plattform nur den legacy Code reinbauen sollte:
#if WINVER >= 0x0502
if( windowsversion >= 0x0502 ) {
GetThreadId(...)
} else {
#endif
myGetThreadId(...)
#if WINVER >= 0x0502
}
#endif
Hat jemand eine Idee, wie man das macht? Ich bastel schon länger an seltsamen Konstrukten wie diesem herum, aber immer mit dem Gefühl, dass das doch einfacher gehen müsste?