ads_printf problem

ads_printf problem

DWhiteley
Advisor Advisor
757 Views
4 Replies
Message 1 of 5

ads_printf problem

DWhiteley
Advisor
Advisor

Guys,

 

I've got some old code with this defined:

 

#define DEBUGSTR(str) ads_printf("\n%s Line: %d String " #str " = '%s'", __FILE__, __LINE__, str)

 

the call is:

 

if (DEBUG_COMMAND_ERROR()) DEBUGSTR(_LAYER);

 

_LAYER is defined as:

 

#define _LAYER         "_.LAYER\0"

 

I'm getting this error:

 

Error 2 error C2664: 'acutPrintf' : cannot convert parameter 1 from 'const char [31]' to 'const ACHAR *'

 

I obviously need to make it UNICODE correct.

 

Can anyone point in the right direction on how to fix this?

 

Thanks in advance,

Dave

0 Likes
Accepted solutions (1)
758 Views
4 Replies
Replies (4)
Message 2 of 5

Alexander.Rivilis
Mentor
Mentor
#define DEBUGSTR(str) acutPrintf(L"\n%s Line: %d String " #str L" = '%s'", __FILE__, __LINE__, str)

#define _LAYER        L"_.LAYER\0"

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"


Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Expert Elite Member

0 Likes
Message 3 of 5

DWhiteley
Advisor
Advisor

Thanks for that Alexander

 

Now I'm getting:

 

Error 1 error C2308: concatenating mismatched strings

 

Dave

0 Likes
Message 4 of 5

Alexander.Rivilis
Mentor
Mentor
Accepted solution
#define WIDEN2(x) L ## x
#define WIDEN(x) WIDEN2(x)
#define __WFILE__ WIDEN(__FILE__)

#define DEBUGSTR(str) acutPrintf(L"\n%s Line: %d String " #str L" = '%s'", __WFILE__, __LINE__, str)
#define _LAYER        L"_.LAYER\0"
void CheckDebugStr()
{
  DEBUGSTR(_LAYER);
}

Result of execution code:

 

acrxEntryPoint.cpp Line: 18 String _LAYER = '_.LAYER'

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"


Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Expert Elite Member

0 Likes
Message 5 of 5

DWhiteley
Advisor
Advisor

Fantastic! That sorted it, thanks very much.

 

Dave

0 Likes