Advanced member
Статус: Не в сети Регистрация: 09.03.2004 Откуда: Кишинёв
Тут проблема возникла. В общем нужно запускать ярлык с параметрами. Сделал так:
Код:
ShellExecute(0,0,edit_lnk,str,L"",SW_SHOW);
где edit_lnk полный путь к ярлыку(с расширением lnk), а str -строка параметров. Там где я делал всё прекрасно работает, но у меня дома не хочет. Проверил у соседа работает . У меня выдаёт ошибку 31(SE_ERR_NOASSOC). В msdn про неё написано
Цитата:
There is no application associated with the given file name extension. This error will also be returned if you attempt to print a file that is not printable.
Пробовал различные варианты второго праметра - всё равно не хочет запускатся. Есть ли способы надёжного запуска ярлыка?
В общем проблема не программирования оказалось:
Тут раньше проскакивала тема про запуск ярлыка из командной строки и батника. Так вот пришли к выводу что должны запускатся. А у меня не запускались - выскакивало стандартное окошко "неизвестный тип файла ..." - вот это как раз и оно. В общем где-то в реестре что-то нарушено. А эксплорер видимо пользуется каким-то продвинутым интерфейсом для запуска этих самых ярлыков.
Member
Статус: Не в сети Регистрация: 03.11.2004 Откуда: Москва
mein пожалуйста вышли на мыло этот архив: motr@bk.ru буду очень благодарен
а то кидаю анзип в папку а от всеравно говорит что нет такого а его в какую папку кидать то надо?
Member
Статус: Не в сети Регистрация: 05.12.2005 Откуда: Rostov-on-Don Фото: 1
to ALL Люди помогите. Другу срочно требуется исходник любой программы на С++. Требования - реализация задачи с помощью классов и максимальная простота. Например, небольшая игра или база данных.
Просьба на сайты с исходниками не посылать - там смотрели, дельного мало. Если есть возможность - давайте прямые ссылки на хорошие исходники.
Всем заранее спасибо.
Member
Статус: Не в сети Регистрация: 05.12.2005 Откуда: Rostov-on-Don Фото: 1
Fractal Спасибо, но челу желательно на русском. Я думаю, может у кого завалялась прога, подходящая. У меня как назло ничего такого нет... Добавлено спустя 57 секунд Что-то нашёл.. ща глянем...
Мужики помогите чем можете Короче borland C++, прога под DOS. Прогамма типа
препод писал(а):
имитирует работу файлового менеджера компьютера, т.е. создание, удаление файлов и папок, просмотр содержимого жесткого диска и т.д., реализовать графический интерфейс
вот короче кусок кода который выводит содеоржимое введенной папки
Advanced member
Статус: Не в сети Регистрация: 09.03.2004 Откуда: Кишинёв
eldarovich88 Дос это не виндовс с его готовыми контролами(листбоксы и тд) - тут всё надо ручками прописывать.
Просканить нужную папку функциями findfirst и findnext , результат закинуть в список/массив. И организовать вывод на экран начиная с определённой координаты со смещением вниз. В общем написать придётся немало, зато можно сделать универсально.
зы: есть в досе функции прокрутки экрана(вверх/вниз), но с ними гемороя не меньше, чем самому всё сделать.
Заблокирован Статус: Не в сети Регистрация: 26.07.2006
Есть у меня пара вопросов по этому коду:
#include <iostream>
#include <conio>
#include <typeinfo>
using namespace std;
class Base{virtual void vertFunc(){}};
class Derv1 : public Base{};
class Derv2 : public Base{};
bool isDerv1(Base *pUnknown)
{
Derv1 *pDerv1;
if(pDerv1 = dynamic_cast<Derv1*>(pUnknown)) return true;
else return false;
}
int main()
{
Derv1 *d1 = new Derv1;
Derv2 *d2 = new Derv2;
if(isDerv1(d1)) cout << "d1 - komponent klassa Derv1\n";
else cout << "d1 - ne komponent klassa Derv1\n";
if(isDerv1(d2)) cout << "d2 - komponent klassa Derv1\n";
else cout << "d2 - ne komponent klassa Derv1\n";
getch();
return 0;
}
Первый: Звёздочка в строке "if(pDerv1 = dynamic_cast<Derv1*>(pUnknown)) return true;", без неё компилятор пишет: "Cannot cast from 'Base *' to 'Derv1'" не могу понять почему "Base *" а не просто "Base"?
Второй: В той же строке, как вообще это условие может быть истинно? Ведь pDerv1 ни чем не инициализирован? И что за адрес получается из этой "dynamic_cast<Derv1*>(pUnknown)"? Буду очень благодарен если мне объяснят!
Member
Статус: Не в сети Регистрация: 01.04.2005 Откуда: Москва-Лубянка
GrIfFiN7 1. pUnknown у тебя объявлен как Base *, что тебя удивляет? — isDerv1(Base *pUnknown)
2. = — не равенство (==), а присваивание. Проверяется результат присваивания. Если приведение типов было успешным, то получится ненулевой указатель и условие выполнится. Если нет — получится NULL, что есть false.
3. dynamic_cast<Derv1*>(pUnknown) приводит тип pUnknown к Derv1. Адрес какой был, такой и остался. Ну или NULL если не получилось.
Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
GrIfFiN7 dynamic_cast - используется для даункастинга, т.е. для преобразования типов вниз по иерархии наследования
Base
|
|
Derv1
У тебя есть указатель на Base, приводишь его к типу Derv1, т.е. мы спускаемся по иерархии наследования. Но учти, что оба класса должны быть полиморфными, а у тебя не так, у тебя деструктор в обоих классах не виртуальный. Добавлено спустя 2 минуты, 43 секунды
Anoss писал(а):
Адрес какой был, такой и остался
Не верно, адресса могут быть разными, в случаи множественного наследования.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения