Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по программированию на C/С++

Автор: iTASmania_Inc
Дата сообщения: 08.09.2007 16:52
2ALL
Скажите, пожалуйста, на какой версии компилятора Borland C написано это:
#include <stdio.h>
#include <conio.h>
void main()
{
}
Автор: ErshovSP2004
Дата сообщения: 10.09.2007 11:39
Господа может ли кто нибудь выложить заведомо рабочий кусок кода в котором строка TreeVeiw отрисовывается вручную (функции CustomDraw и CustomDrawItem).
Если что то Помощь читал.
Конечная цель реализовать в строке выделение искомого слова, как это сделано в Делфи 7 при поиске "Find in Files".
Автор: IgorMIgor
Дата сообщения: 10.09.2007 18:57
Помогите: нужно передать адрес переменной в строку.
Автор: ErshovSP2004
Дата сообщения: 11.09.2007 09:06
Не сочтите флудом. Сам потер примеры отсюда и вопрос возник.
ErshovSP2004

Цитата:
Господа может ли кто нибудь выложить заведомо рабочий кусок кода в котором строка TreeVeiw отрисовывается вручную (функции CustomDraw и CustomDrawItem).
Если что то Помощь читал.
Конечная цель реализовать в строке выделение искомого слова, как это сделано в Делфи 7 при поиске "Find in Files".

Отвечу себе сам цитатой с другого форума

Цитата:
... чувак, юзай исходник готовый. Борландовский
Путь в правде: C:\Program Files\Borland\Delphi1,2,3,4,5,6,7,8,9 вообще какая у тя\Demos\CustomDraw ...
Автор: SergeiNG
Дата сообщения: 11.09.2007 09:34
rain87
Спасибо за совет, попробую
Автор: ErshovSP2004
Дата сообщения: 11.09.2007 10:19
Увы счастье моё было недолгим. Ну не получается в отдельном Node стандартного TreeView часть текста выделить жирным. К тому же при горизонтальном скролинге даже в примере от борланда лажа при ручной отрисовке (не учитывается смещение текста).
А вот в VirtualTreeview всё получилось. Спасибо разработчику
Автор: BattleMage
Дата сообщения: 18.09.2007 14:19
Всем привет! У меня такой вопрос: как отсортировать слова по алфавиту? Например, есть 6 слов: "мама", "человек", "мир", "папа", "арбуз", "баня". Должно получиться так: "арбуз", "баня", "мама", "мир", "папа", "человек" :)
Как я понимаю нужно сравнивать коды символов. Например, код буквы "а" меньше, чем код буквы "б". Кстати, сравнением только первых букв не обойтись ;)

Подскажите как это реализовать на языке Си?
Автор: xdude
Дата сообщения: 18.09.2007 14:37
BattleMage
Есть функция strcmp() для посимвольного сравнения строк, почитай доку по ней. Естественно, строки нужно будет объеденить в массив, и сортировать массив каким-нибудь алгоритмом сортировки, основываясь на результатах сравнения строк посредством функции strcmp().
В С++ это сделать гораздо легче с помощью стандартных алгоритмов, в С придется немного попарить моск
Автор: WiseAlex
Дата сообщения: 18.09.2007 16:58
BattleMage
не забудь про локали при сортировке и про большими/маленькие буквы
Автор: Lihonosov
Дата сообщения: 18.09.2007 17:26
Нужно написать прогу, которая мониторит обращение к программам.

Например, пользователь пытается запустить "прога_1.ехе", а программа проверяет имя проги со своей базой и если ее в базе нет, то блокирует выполнение.

У кого есть мысли по этому поводу?
Автор: BattleMage
Дата сообщения: 18.09.2007 17:27
Спасибо большое, все заработало. Голову особо не забивал и сортировал обычным методом "пузырька" ;)
Автор: distance
Дата сообщения: 18.09.2007 18:18
Lihonosov
API Spying Techniques for Windows 9x, NT and 2000
Автор: Mickey_from_nsk
Дата сообщения: 19.09.2007 05:45
Lihonosov
По-моему, такие вещи проще решаются ACL. Запрети запуск программы, человек хоть семи пядей во лбу, без извратов просто не сможет ее запустить.
Ну и все эти ACL, есессно, можно выставлять программно.
Автор: Lihonosov
Дата сообщения: 19.09.2007 10:18
Некоторые запрещают запуск программ в реестре.
Параметр RestrictRun и добавление списка разрешенных программ.

Я пошел от этого метода.
Написал программу, которая сканирует диск на наличие файлов с определенными расширениями (какие укажешь) и может добавлять прямо в реестр или формировать *.reg файл.

Но запуск запрещенных (точнее в данном случае "неразрешенных") программ обходится простым переименованием файла на имя разрешенной программы.

Сейчас идея такая:
- просканировать диск на наличие файлов и создать таблицу хешей этих файлов
- написать программу мониторинга запуска файлов, которая бы сравнивала запускаемую программу со своей таблицей хешей.

Застрял на программе мониторинга.

Еще кто-то что-нибудь сказать может по этому поводу?

Если у кого есть Example буду очень благодарен если напишете

P.S. Пишу на VC++.net || C#
Автор: Qraizer
Дата сообщения: 19.09.2007 13:12
Lihonosov
Ну что за мания такая, лазать по реестру, когда есть стандартные средства. Во-первых, RestrictRun настраивается через политики безопасности. Во-вторых, не нравится возможность переименовать - теми же ACLями не разрешай переименование.
Автор: Lihonosov
Дата сообщения: 19.09.2007 13:25
Это нужно в учебное заведение.
Где ученики учатся "Создавать", "Переименовывать", "Удалять" и т.л.

И просто, хочется написать свое и пользоваться своим.
Автор: TeXpert
Дата сообщения: 19.09.2007 20:02
Qraizer
Цитата:
...не нравится возможность переименовать - теми же ACLями не разрешай переименование
Но могут ведь создать копию под другим именем! Так что способ
Цитата:
- просканировать диск на наличие файлов и создать таблицу хешей этих файлов
- написать программу мониторинга запуска файлов, которая бы сравнивала запускаемую программу со своей таблицей хешей
самый гибкий.
Lihonosov
По ссылке distance есть интересный способ.

Автор: Mickey_from_nsk
Дата сообщения: 20.09.2007 07:13
TeXpert

Цитата:
Но могут ведь создать копию под другим именем!

Закрой его нафиг на чтение. Если не поможет - закрой каталог на просмотр. Не поможет - закрой пользователя нафиг.

Все должно решаться подходящими инструментами. Если есть ACL, не надо их выдумывать по новой. Вообще, реши, что тебе больше хочется - проблему решить или по программировать с извратами.
Автор: topotuno
Дата сообщения: 20.09.2007 08:51
как сделать чтобы Microsoft Visual C++ 6.0 запускался из под пользователя под XP SP2 . А то

Цитата:
Compiling... Error spawning cl.exe

Автор: Lihonosov
Дата сообщения: 20.09.2007 09:05

Цитата:
Все должно решаться подходящими инструментами. Если есть ACL, не надо их выдумывать по новой. Вообще, реши, что тебе больше хочется - проблему решить или по программировать с извратами.


Я хочу написать такую программу. Хотя бы для себя!
Автор: TeXpert
Дата сообщения: 20.09.2007 10:41
Mickey_from_nsk
Глупо одними такими запретами пользоваться, а потом, они всегда хромают. Да и потом, я не стал подчёркивать полезность программирования для автора поста, что он лишний раз подтверждает:
Цитата:
Я хочу написать такую программу. Хотя бы для себя!
Автор: Steriosux
Дата сообщения: 20.09.2007 12:57
Взываю к помощи посетителей этого топа )
Вопрос конечно ламерозный, но что поделаешь..., а вдруг кто поможет
Наткнулся я тут на днях на однин исходник и вспомнил, что и самому такая прога давно уже нужна, и самое главное - искал раньше, нигде не мог найти готовой.
Собсно прога должна выдирать автоматом с сохраненных eml писем аттачи и складывать в другую папку их, в исходнике вроде как раз то, что надо.
Ну, не знаю я С++, ладно еще это.., скомпилить не слишком существенная проблема, компилил и на c++, когда сильно нужно было, но с этим (
Пришел в итоге здесь к выводу, что используется NET Framework, этой гадости для разработчиков у меня не имеется.
Тут есть еще ошибки видимо, насколько я понял.
#using <mscorlib.dll> - это вообще хз что..
CLSC TX_SERVER - это должно по идее слитно писаться...
Посмотрите, плз, кто в этом разбирается )
Мож кто поможет скомпилить эту софтину?
Цитирую, как было в оригинале:



Цитата:

Компилировалось в Visual C++ v7.0,Win 2000Pro. Проверено работает... Успехов
// This is the main project file for VC++ application project
// generated using an Application Wizard.

#include "stdafx.h"
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace raw_interfaces_only
#import <cdosys.dll> no_namespace raw_interfaces_only
#include <iostream.h>
#include <wchar.h>


#using <mscorlib.dll>
#include <tchar.h>

using namespace System;

// This is the entry point for this application
int _tmain(int argc,char* argv[])
{
// TODO: Please replace the sample code below with your own.
CoInitialize(NULL);

IDropDirectory* pDropDir = NULL;
IMessages* pMsgs = NULL;
IMessage* pMsg = NULL;
IBodyParts* pBodys = NULL;
IBodyPart* pBody = NULL;
_Stream* pStream = NULL;
long msgs_cnt = 0;
long attach_cnt = 0;
BSTR msg_name;
BSTR fname;
BSTR path_sav;

CoCreateInstance(__uuidof(DropDirectory),NULL,CLSC TX_SERVER,
__uuidof(IDropDirectory),(void**)&pDropDir);

pDropDir->GetMessages(L"c:\\mailroot",&pMsgs);
pMsgs->get_Count(&msgs_cnt);//кол-во сообщений в папке
cout << "message count: " << msgs_cnt << endl;


//проходим последовательно по всем письмам
for(long i=1;i<=msgs_cnt;i++)
{ pMsgs->get_Item(i,&pMsg);//берем очередное письмо в каталоге
pMsg->get_Attachments(&pBodys);//ссылка на тело приаттаченных файлов
pBodys->get_Count(&attach_cnt);//количество приаттаченных файлов в мессаге
for(long j=1;j<=attach_cnt;j++)//перебираем последовательно файлы и сохраняем их на диске
{
pBodys->get_Item(j,&pBody);
pBody->get_FileName(&fname);
cout << "Saved attached file " << _bstr_t(fname) << endl;
pBody->GetDecodedContentStream(&pStream);
path_sav = _bstr_t("c:\\mailroot\\")+fname;
pStream->SaveToFile(path_sav,adSaveCreateOverWrite);//сохраняем файл
}//end for j

}//end for i

CoUninitialize();
return 0;
}


Автор: distance
Дата сообщения: 20.09.2007 13:31
Steriosux

Цитата:
#using <mscorlib.dll> - это вообще хз что..

это означает использование Managed-расширений. К слову, не понял, зачем оно здесь надо - по коду не используются, да и без онного нормално компилируется.
программа конечно кривая до жути - нет вообще ни каких проверок, сплошные утечки ресурсов... у меня вылетает потому что нет такого каталога c:\mailroot... как будто писал какой-то ламер В общем, пользуй на свой страх и риск.
лови линк (Release, MD, No Managed)
h**p://r***d****e.com/files/56970523/saveattach.zip.html
Автор: Steriosux
Дата сообщения: 20.09.2007 15:11
distance
Спасибо!
Все работает норм!
То, что прога криво написана - пофиг, главное, чтобы она вообще работала )
Только можно еще, если не трудно, скомпилить с одной маленькой доработкой...
В: path_sav = _bstr_t("c:\\mailroot\\")+fname;
изменить название папки хотя бы на mailroot1, а то мешанину устраивать не очень хочется в одной папке...
Автор: distance
Дата сообщения: 20.09.2007 15:21
путь подправил, лови
hxxp://r***d****e.com/files/56988599/saveattach-solution-vc7.1.zip.html
это полностью рабочий и компилируемый солюшен для студии 7.1 (7.0 у меня нет,да и глючное оно). прогу ищи в каталоге Release
если захочешь внести изменения то сможешь сам скомпилировать.
убедись только что каталог c:\mailroot1 создан перед началом работы, а то наверное опять вылетит
Автор: Steriosux
Дата сообщения: 20.09.2007 15:33
distance
Огромное спасибо.
Вроде достаточно простая прога, а нигде не мог ничего готового найти... На рнр написать не сложно, так как там есть прямая функция работы с base64, но скрипт юзать не всегда целесообразно..., а уже под винду - сложнее всё это описать, здесь тоже готовые либы юзались, а, если всю работу с base64 описывать на том же дельфи :\

Автор: k0s
Дата сообщения: 23.09.2007 01:49
господа кто может подсказать или чем помочь, вот задание:
Генерация случайной величины, нормально распределенной на интервале [a,b]
Автор: Mr Nobody
Дата сообщения: 23.09.2007 22:12
k0s
Возьмите стандартную функцию rand(), которая дает равномерное распределение, сделайте, чтобы она дала равномерное распределение на интервале [a,b]. Потом просумируйте результаты равномерного распределения, например 16 раз будет достаточно, потом сумму поделите на 16 и полученные таким образом числа дадут вам нормальное распределение.
Автор: Abs62
Дата сообщения: 23.09.2007 22:47
k0s
А ещё можно воспользоваться преобразованием Бокса-Мюллера.
Автор: Lihonosov
Дата сообщения: 24.09.2007 16:38
На C#

Нужно в файл записать полный путь определенного файла.
Делаю так:
...
sWriter.Writeline(file.FullName.ToString());
...

Все хорошо, но записует так: C:\Windows\explorer.exe
но нужно чтобы писал так: C:\\Windows\\explorer.exe

Т.е. записывал не один \, а два - \\

Кто подскажет?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193

Предыдущая тема: не знаю как назвать тему :-)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.