Можно вот так: Code: LPSTR WtoA(LPWSTR in) { LPSTR p = (LPSTR)in; for(unsigned i = 0; p[i*2];i++) { p[i] = p[i * 2]; } return p; }
Как получить список днс серверов зная хост, типа функции Code: (PHP 5) dns_get_record — Fetch DNS Resource Records associated with a hostname только под винду, на с++
Вообще, способ SerpentRider'а должен прокатить для латинских символов и кодировки UCS-2, где латинские символы занимают 2 байта, причем старший - ноль. Он массив не удваивает, а урезает до однобайтового.
Человек просил конверт из LPWSTR в char*. Идем смотрим в объявление типа студии: LPWSTR ---> typedef __nullterminated WCHAR *NWPSTR, *LPWSTR, *PWSTR; ---> typedef wchar_t WCHAR; // wc, 16-bit UNICODE character
Спасибо, помогли . Теперь другой вопрос. Как из DLL-ки можно вызвать окно консоли, и вывести туда какой либо текст ?
http://msdn.microsoft.com/en-us/library/ms681944%28v=vs.85%29.aspx http://msdn.microsoft.com/en-us/library/ms687401%28v=VS.85%29.aspx
в исходном коде старницы есть строка, которую мне нужно отпарсить. для более точного париснга нужно указать поиск по след строке: Code: <div class="right"><a href="/Teams/Details/36257"><b> но я не могу записать эту строку в переменную, так как не знаю как в с++ заменяется двойная кавычка. подскажите пожалуйста. и еще можно вместо 36257 указать макрос, чтоб при парсинге он искал все строки с похожим содержанием. т есть такие: <div class="right"><a href="/Teams/Details/00001"><b> <div class="right"><a href="/Teams/Details/00002"><b> ... <div class="right"><a href="/Teams/Details/99999"><b>
Экранируй кавычки обратным слешем char stroka[] = "<div class=\"right\"><a href=\"/Teams/Details/36257\"><b>"; string stroka = "<div class=\"right\"><a href=\"/Teams/Details/36257\"><b>";
Есть весьма забавный код. Он работает, если закомментить строку f.x; . Если это сделать, все нормално собирается. Что же тогда такое - Foo f в таком случае? PHP: #include <iostream> #include <cstdlib> using std::cout; using std::endl; class Bar { }; class Foo { public: Foo(Bar b); int x; }; Foo::Foo(Bar b) { cout << "Foo::Foo()" << endl; } int main() { Foo f(Bar()); f.x; // закомментировать эту строку. return EXIT_SUCCESS; }
Компилятор воспринимает Foo f(Bar()); как объявление функции, возвращающей Foo, и принимающей указатель на функцию, возвращающую Bar, без аргументов. Сделай так: PHP: int main() { Bar b; Foo f(b); f.x; return EXIT_SUCCESS; }
Интересно также вот что. Есть стандартное объявление new PHP: void *operator new (size_t) Выглядит достаточно просто. Однако, вопросы начинаются, когда мы пишем PHP: Foo *f = new Foo; Ни намека на sizeof(Foo). Больше похоже на template. Каким образом срабатывает new?
Вообще-то это на уровне C++ такое определение оператора new. Скажем, тебе же C++ не даст определить оператор = с двумя аргументами внутри класса. Есть еще пара других форм new, но они тоже предопределены C++.