Op het moment ben ik bezig iets te proteren/converteren/omschrijven van C naar C++. Gaat allemaal wel aardig, mag niet klagen. Alleen loop ik nu tegen een waarsch klein probleem: in C was een bepaalde functie als macro geimplementeerd, die dan weer een andere functie aanriep met 2 paramaeters, nl __FILE__ en __LINE__.
Het gaat om een simpele debugoutput functie:
Nu zie je natuurlijk meteen al waar het mis gaat: __LINE__ en __FILE__ zijn constanten van de compiler (oid), en geven in deze functie altijd dezelfde regel... Hoe kan ik dit zo maken dat dit niet gebeurd?
Ik heb al geprobeerd met een macro binnen de header file, maar dan geeft ie een fout op de '::'. Hoe kan ik dit wel oplossen zonder alle aanroepen te moeten/hoeven te vervangen?
Het gaat om een simpele debugoutput functie:
code:
1
2
3
4
5
| void
CDebug::OutputLastError(DWORD dwLastError, LPSTR szPrefix)
{
CDebug::OutputLastErrorFileLine(dwLastError, szPrefix, __FILE__, __LINE__);
} |
Nu zie je natuurlijk meteen al waar het mis gaat: __LINE__ en __FILE__ zijn constanten van de compiler (oid), en geven in deze functie altijd dezelfde regel... Hoe kan ik dit zo maken dat dit niet gebeurd?
Ik heb al geprobeerd met een macro binnen de header file, maar dan geeft ie een fout op de '::'. Hoe kan ik dit wel oplossen zonder alle aanroepen te moeten/hoeven te vervangen?
The box said 'requires Windows 95 or better', so I installed Linux...