Вопрос № 145261: Имею код:<div style="margin:15px; margin-top:10px"><div><b><font color="gray">Код:</font></b></div><pre style="margin: 0px; padding: 6px; border: 1px inset; width: 650px; height: 100px; text-align: left; overflow: auto; color:#032866"> #include &l...Вопрос № 145313: Здравствуйте уважаемые эксперты! Помогите, пожалуйста, с реализацией такой программы. Необходимо реализовать
на языке C++ следующий набор операций с двусвязным линейным списком: ∙ инициализация списка; ∙ уничтожение списка с освобождением па...Вопрос № 145362: Как перегнать число типа DOUBLE dbl в TCHAR szStr? в хелпе нашёл _gcvt_s, но она c TCHAR не работает...
error LNK2019: unresolved external symbol __imp__mciSendCommandW@16 referenced in function "public: void __thiscall CxxDlg::OnBnClickedButton1(void)" (?OnBnClickedButton1@CxxDlg@@QAEXXZ)
ЧТО
Я НЕ ТАК СДЕЛАЛ???
Приложение:
Отправлен: 28.09.2008, 03:36
Вопрос задал: effort (статус: Студент)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Sk0rp
Здравствуйте, effort!
Вы подключили только объявление функции mciSendCommand, этого хватает для компиляции, но на этапе сборки уже нужен сам код функции, а вот его то вы и не включили в свой проект. Реализация mciSendCommand располается в Winmm.lib соответственно вам нужно или в настройках проекта указать прилинковывать этот lib файл или можно в своем коде написать: #pragma comment(lib, "Winmm.lib")
Ответ отправил: Sk0rp (статус: 5-ый класс)
Ответ отправлен: 28.09.2008, 03:44 Оценка за ответ: 5 Комментарий оценки: Я сделал в настройках проекта
Вопрос № 145.313
Здравствуйте уважаемые эксперты! Помогите, пожалуйста, с реализацией такой программы. Необходимо реализовать на языке C++ следующий набор операций с двусвязным линейным списком: ∙ инициализация списка; ∙ уничтожение списка с освобождением памяти; ∙ добавление узла в голову списка; ∙ добавление узла в хвост списка; ∙ удаление узла из головы списка; ∙ удаление узла из хвоста списка; ∙ выдача текущего списка на экран ∙ добавить новый узел в указанную позицию; ∙ поменять местами первый
и последний узлы.
В приложении находится пример подобной реализации (сохраните в файл с именем dllist.h). Список выполнен в виде шаблона класса. Пример использования шаблона:
Код:
#include <iostream> #include "dllist.h"
using
std::cout; using std::endl;
int main() { // Список целых чисел (int) DLList<int> list;
int i; // Вставка 5 элементов в конец списка for (i = 1; i <= 5; ++i) list.push_back(i);
// Вставка 5 элементов в начало списка for (i = -1; i >= -5; --i) list.push_front(i); // Вставка в позицию с номером 5 (нумерация от нуля) list.insert(5, 6); // Вывод списка list.print(cout); cout << endl;
// Удаление элемента из начала списка list.pop_front(); // Проверка list.print(cout); cout << endl; // Удаление из конца списка list.pop_back(); // Проверка list.print(cout); cout << endl; // Меняем первый и последний элементы местами list.swapFrontBack(); // Доступ к элементам списка по индексу list[4] = 100; list.print(cout); // Размер списка cout << "
Size: " << list.size() << endl;
return 0; }
Список выполняемых классом DLList<T> операций: ∙ инициализация списка; - конструктор (выполняется автоматически, при создании объекта) ∙ уничтожение списка с освобождением памяти; - деструктор (автоматически, при удалении объекта) ∙ добавление узла в голову списка; - void push_front(...) ∙ добавление узла в хвост списка; void push_back(...) ∙ удаление узла из головы списка; - T pop_front() ∙
удаление узла из хвоста списка; - T pop_back() ∙ выдача текущего списка на экран - void print(...) ∙ добавить новый узел в указанную позицию; - void insert(...) ∙ поменять местами первый и последний узлы. - void swapFrontBack()
Удачи!
Приложение:
--------- Все должно быть сделано настолько просто, насколько это возможно. Но не проще. (с) А.Эйнштейн
Ответ отправил: Denisss (статус: Профессор) Россия, Москва ICQ: 281599577 ---- Ответ отправлен: 29.09.2008, 20:08
Вопрос № 145.362
Как перегнать число типа DOUBLE dbl в TCHAR szStr? в хелпе нашёл _gcvt_s, но она c TCHAR не работает
Приложение:
Отправлен: 28.09.2008, 23:18
Вопрос задал: effort (статус: Студент)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Sk0rp
Здравствуйте, effort! Для начала нужно понимать, что такое THCAR. Это макрос, который в зависимости от настройки проекта: "Использовать или не использовать юникод" - превращается в wchar_t или в char. (если wchar_t не определен, но нужен, то в short int). Большинство функций для работы со строками имеют 2 варианта: для юникода и не юникода и имя в виде макроса, который выбирает нужную. Но не все, _gcvt например юникодной версии не имеет, но можно подточить напильником. Я в реальном проекте, где
это место критично по скорости, сделал так: конвертил с помощью gcvt в char*, а wchar_t* получал вручную (вариант string_cast) Перегруженый вариант string_cast с char * нужен, что бы программа компилировалась при любых настройках проекта. Если не критична скорость, то можно печатать в строку с помощью: _sntprintf, это удобно т.к. можно тонко настроить формат перевода.
Приложение:
Ответ отправил: Sk0rp (статус: 5-ый класс)
Ответ отправлен: 29.09.2008, 00:45 Оценка за ответ: 5 Комментарий оценки: Отличный ответ, а я делал с помощью StringCbPrintf