2016-06-14 3 views
0

У меня мало опыта разработки приложений C, и у меня есть конкретная проблема с литьем. У меня есть переменная с переменным жестким кодом, которую мне нужно передать как параметр в функции.C cast using pjsip

char * data = "058dd54970d65c"; 

This is the function: 

PJ_DECL(pj_status_t) pjsua_call_make_call(pjsua_acc_id acc_id, 
        const pj_str_t *dst_uri, 
        const pjsua_call_setting *opt, 
        void *user_data, 
        const pjsua_msg_data *msg_data, 
        pjsua_call_id *p_call_id); 

Для того, чтобы использовать его:

pjsua_call_make_call(acc_id, &uri, 0, NULL, data, NULL); 

Как вы можете видеть, что я нужен бросок в параметре 5. Я получаю эту ошибку:

примечание: ожидается const struct pjsua_msg_data * но аргумент типа char *

Я стараюсь использовать sprintf и другие решения, но не работает. Я был бы признателен, если бы кто-нибудь мог мне помочь.

+0

Создать новый объект 'pjsua_msg_data' и заполнить свои данные в msg_body. – Zelldon

+0

Я создаю этот объект pjsua_msg_data data_alice; Как я могу заполнить его или сделать с данными = «058dd54970d65c» – picador

+0

Попробуйте это 'data_alice.msg_body = данные;' – Zelldon

ответ

2

Для завершения напишите свой комментарий как новый ответ.

Создайте новый объект структуры pjsua_msg_data и заполните данные в msg_body. После этого вы можете просто использовать этот объект с вызовом pjsua_call_make_call.

Попробуйте это:

pjsua_msg_data data_alice; 
data_alice.msg_body = data; 
pjsua_call_make_call(acc_id, &uri, 0, NULL, data_alice, NULL);