Sau khi lướt web và làm rối tung xung quanh bản thân mình, tôi không thể chuyển đổi mục tiêu của void * thành chuỗi std ::. Tôi đã thử sử dụng sprintf(buffer, "%p", *((int *)point));
theo đề nghị của this page để nhận được một chuỗi C, nhưng không có kết quả. Và thật đáng buồn, phải, tôi phải sử dụng một khoảng trống *, vì đó là những gì SDL sử dụng trong cấu trúc USEREVENT của họ.Chuyển đổi một void * thành std :: string
Mã Tôi đang sử dụng để lấp đầy Userevent, cho những người quan tâm, đó là:
std::string filename = "ResumeButton.png";
SDL_Event button_press;
button_press.type = BUTTON_PRESS;
button_press.user.data1 = &filename;
SDL_PushEvent(&button_press);
Bất kỳ ý tưởng?
CHỈNH SỬA: Cảm ơn tất cả các câu trả lời, tôi chỉ cần bỏ khoảng trống * thành chuỗi std :: string *. Tôi ngớ ngẩn quá. Cảm ơn các bạn rất nhiều!
STL, USEREVENT trong STL là gì? C++ không có thứ gì như vậy. – GManNickG
Bạn đang cố gắng làm gì? Bạn có một con trỏ void * trỏ đến gì? –
Tôi nghĩ rằng anh ta có nghĩa là SDL UserEvent http://linux.die.net/man/3/sdl_userevent – Stephen