Так выглядит запрос (правда у меня загрузка не на стену а в альбом, но суть та же)
POST http://cs62xxxx.vk.com/upload.php?act=do_add&mid=6xxxxxxx&aid=213651645&gid=0&hash=1b88ccc2a73467387614fdc740241ec3&rhash=af7e667ec013e00d6b7a42234018xxxx&swfupload=1&api=1 HTTP/1.1
Host: cs62xxxx.vk.com
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0
Accept: */*
Accept-Encoding: deflate, gzip
Connection: Keep-Alive
Cookie: remixlang=0
Content-Length: 12573
Content-Type: multipart/form-data; boundary=------------------------23512563ad262e45
--------------------------23512563ad262e45
Content-Disposition: form-data; name="file1"; filename="screenshot 2015-03-09 001_en.png"
Content-Type: image/png
PNG....содержимое файла
--------------------------23512563ad262e45--
это делается грубо говоря так:
struct curl_httppost *formpost=NULL;
struct curl_httppost *lastptr=NULL;
curl_formadd(&formpost,
&lastptr,
CURLFORM_COPYNAME, "file1",
CURLFORM_FILENAME, "screenshot 2015-03-09 001_en.png",
CURLFORM_FILE, "D:\\screenshot 2015-03-09 001_en.png",
CURLFORM_CONTENTTYPE, "image/png",
CURLFORM_END);
curl_easy_setopt(curl_handle, CURLOPT_URL, upload_url);
curl_easy_setopt(curl_handle, CURLOPT_HTTPPOST, formpost);
curl_result = curl_easy_perform(curl_handle);
В ответ получаете json с данными, которые надо будет передать для сохранения фото.
Взял отсюда
https://github.com/zenden2k/image-uploader/blob/ma...
это не C++, но нижележащие вызовы curl (
https://github.com/zenden2k/image-uploader/blob/1....)
Если хотите можете заюзать мою обертку в своем проекте, чтобы не мучаться с сишным апи
https://github.com/zenden2k/curl-cpp-wrapper