error C2440: '=' : cannot convert from 'char *' to 'ACHAR *'

error C2440: '=' : cannot convert from 'char *' to 'ACHAR *'

DWhiteley
Advisor Advisor
1,060 Views
5 Replies
Message 1 of 6

error C2440: '=' : cannot convert from 'char *' to 'ACHAR *'

DWhiteley
Advisor
Advisor

Guys,

 

I'm converting an old C++ project to ObjectARX 2013 & then on later to 2016 from 2004. (i'm assuming Visual Teefy might help me out in 2013).

 

This bit of code has got me stuck:

 

#define START_STR(rb,str) rb = ads_newrb(RTSTR);rb->resval.rstring = cpCopystr(str)

 

 START_STR(rbMake, _COPY);

 

I'm getting this error:

 

Error 5 error C2440: '=' : cannot convert from 'char *' to 'ACHAR *'

 

I'm assuming it's because of the UNICODE changes.

 

Can anyone help me out on this please?

 

Dave 

0 Likes
Accepted solutions (1)
1,061 Views
5 Replies
Replies (5)
Message 2 of 6

Alexander.Rivilis
Mentor
Mentor

You have to provide code of cpCopystr. I think this function have to return ACHAR * instead of char *

Also you have to use in code:

START_STR(rbMake, L"_COPY");

 

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | 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

Message 3 of 6

DWhiteley
Advisor
Advisor
Here you go:



char *

cpCopystr(char *str)

{

char *temp;

temp = (char *)malloc((unsigned) (strlen(str) + 1));

if (temp == NULL) {

#ifdef NON_ADS

printf("Out of memory in cpCopystr()");

abort();

#else

acrx_abort("Out of memory in cpCopystr()");

#endif

}

strcpy(temp, str);

return(temp);





Regards



Dave



---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
0 Likes
Message 4 of 6

Alexander.Rivilis
Mentor
Mentor
Accepted solution

What about next code:

 

#define START_STR(rb,str) (rb = acutBuildList(RTSTR, str))
resbuf *rbStart = NULL;
START_STR(rbStart, L"_COPY"); 

P.S.: I do not know what is _COPY in your code.  I hope it is a string like "_COPY"

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | 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

Message 5 of 6

DWhiteley
Advisor
Advisor

Hi Alexander,

 

_COPY is defined as:

 

#define _COPY          "_.COPY\0"

 

do I need to alter this to  _T("_.COPY\0") ?

 

Dave

0 Likes
Message 6 of 6

Alexander.Rivilis
Mentor
Mentor

@Anonymous wrote:

 

...do I need to alter this to  _T("_.COPY\0") ?


Yes. Or L"_.COPY\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