ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

18.05.2009, 17:03
|
|
Участник форума
Регистрация: 30.01.2009
Сообщений: 196
Провел на форуме: 505362
Репутация:
66
|
|
Дайте пожалуйста мануал по С++ функциям для файловой системы. Тоесть ls всех файлов/папок, нахождение пути к системным папкам, нахождения пути к запущеному файлу и т д. С меня плюсы. Спасибо
|
|
|

18.05.2009, 17:30
|
|
Участник форума
Регистрация: 09.08.2008
Сообщений: 139
Провел на форуме: 560332
Репутация:
15
|
|
Таак...
Пытаюсь скомпилить с -static , но чото не идет дело.
В pkg-config указываю параметр --static. Т.е. запрос такой:
pkg-config --libs-only-L --static --cflags gtkmm-2.4
В параметры g++ добавил -static.
Добавил -lgtkmm-2.4.dll ( .dll это только название, на самоме деле gtkmm-2.4.dll.a) и др. с библиотеки GTKmm 2.4.
Компиляция вроде все норм завершилась, но .ехе весит пол метра и все равно просит библиотеки ;{
|
|
|

18.05.2009, 17:37
|
|
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме: 2868783
Репутация:
414
|
|
Добавил -lgtkmm-2.4.dll ( .dll это только название, на самоме деле gtkmm-2.4.dll.a) и др. с библиотеки GTKmm 2.4.
Компиляция вроде все норм завершилась, но .ехе весит пол метра и все равно просит библиотеки
Посмотри от каких именно библиотек идут зависимости.
|
|
|

18.05.2009, 18:15
|
|
Участник форума
Регистрация: 09.08.2008
Сообщений: 139
Провел на форуме: 560332
Репутация:
15
|
|
C:\GTK\bin\libgdk-win32-2.0-0.dll
C:\GTK\bin\libpangomm-1.4-1.dll
C:\GTK\bin\zlib1.dll
C:\cygwin\bin\cygwin1.dll - эта пофиг.
C:\GTK\bin\libgtk-win32-2.0-0.dll
C:\GTK\bin\libcairomm-1.0-1.dll
C:\GTK\bin\libatk-1.0-0.dll
C:\GTK\bin\libgobject-2.0-0.dll
C:\GTK\bin\libgdk_pixbuf-2.0-0.dll
C:\GTK\bin\libpango-1.0-0.dll
C:\GTK\bin\libglibmm-2.4-1.dll
C:\GTK\bin\libglib-2.0-0.dll
C:\GTK\bin\libcairo-2.dll
C:\GTK\bin\libpng12-0.dll
C:\GTK\bin\libgdkmm-2.4-1.dll
C:\GTK\bin\libsigc-2.0-0.dll
C:\GTK\bin\libpangowin32-1.0-0.dll
C:\GTK\bin\libgiomm-2.4-1.dll
C:\GTK\bin\libgtkmm-2.4-1.dll
C:\GTK\bin\libpangocairo-1.0-0.dll
C:\GTK\bin\libgio-2.0-0.dll
C:\GTK\bin\libgmodule-2.0-0.dll
C:\GTK\bin\libatkmm-1.6-1.dll
Как я понимаю вы это просили? Ну избавиться я хочу от них, т.е. статически слинковать. Я понимаю, что так все статически слинкуется, вообще все, даже те , что уже есть в системе, но у меня даже так не получается.
|
|
|

18.05.2009, 18:35
|
|
Познающий
Регистрация: 23.01.2009
Сообщений: 32
Провел на форуме: 96906
Репутация:
8
|
|
[QUOTE]to razb: ты не ответил ни на один мой вопрос....(красота меня ни шибко волновала)
вопрос в силе:
И все таки как взять строку из textBox если заранее ее длина неизвестна?
И вообще кто-нибудь может объяснить мне разницу между System::String ^ , string(из инклуда <string.h>) char * и char! Это меня уже 3 день в ступор вводит....
И че это за оператор подозрительный ^; не нравится он мне
|
|
|

18.05.2009, 19:11
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
Почитай сначала это
Не вижу смысла повторять то, что уже написано, и не раз написано. Про String^ забудь. Это не чистый с++. Помесь с++ и дотнета. Оно тебе все равно рано.
|
|
|

18.05.2009, 20:14
|
|
Познающий
Регистрация: 23.01.2009
Сообщений: 32
Провел на форуме: 96906
Репутация:
8
|
|
Raskal ты зря думаешь что мне рано и я задаю вопросы потому, что жить скучно. У меня на компе самоучителей по С++ штук 8 валяется....один из них меня заинтересовал "освой С++ за 21 день" и я его читаю.....просто во всех книгах описываются перегруженные функции, операторы, типы данных и классы, как по шаблону....но нигде не написанна разница между массивами данных массивом данных заканчиваюшимся 0 и анси строкой заканчивающейся 0.....Просто после Object Pascal где был тип string такое изобилие строк в с++ мне непонятно......
И если так трудно ответить на такой простой вопрос, может вопрос не такой уж простой?
Я пытаюсь делать так:
private: System::Void bbConn_Click(System::Object^ sender, System::EventArgs^ e) {
String ^szAddr = "172.23.0.74";
SOCKET hSocket;
struct sockaddr_in server;
//Получаем IP servera
szAddr = textBox1->Text;
//Создаем сокет
hSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
//Заполняем структуру sockaddr_in
server.sin_family = AF_INET;
server.sin_port = htons(1313);
server.sin_addr.S_un.S_addr = inet_addr(szAddr);
iRet = connect(hSocket, server, sizeof(server));
}
А он говорит: error C2664: inet_addr: невозможно преобразовать параметр 1 из 'System::String ^' в 'const char *'
Я и пытаюсь разобратся в изобилии строк С++.....Раздел ведь для новичков....
|
|
|

18.05.2009, 20:31
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
ну а зачем ты себе жизнь усложняешь, используя мэнэджед с++ ? разберись сначала с чистым с++ без всякого гуя. а ты пытаешься все и сразу освоить. char* - обычный массив символов, заканчивается на 0. но не обязательно. ибо в си как таковых строк не было. в си все массивы по сути байтовые, суй что хочешь. просто задание типа char подсказывает программисту, что это массив символов. но ты легко засунешь туда любые байты, которые не отражают никаких символов. а char* как раз растет из си. на деле этот тип данных используют очень редко. только при вызовах апи. ибо в виндос строки представляют из себя также терминированные нулем массивы байтов. но внутри своей программы ты можешь(и даже должен) использовать более адекватные типы. например класс std::string. по сути это просто оболочка для char*. по сути все классы строк - оболочки для char*. они управляют памятью, предоставляют сервисные методы типа toUpper, или перегруженные методы для сравнения и складывания строк. У всех есть метод получения указателя на строку. для того, чтобы как раз использовать эти классы с системными вызовами. дальше идет класс CString из atl или мфц. он весьма удобный, но не кроссплатформенный. у него метод получения строки GetBuffer(). у класса std::string метод получения указателя c_str(). так же операторы перегружены приведения типов, например LPCSTR. а вот использование мэнэджэд с++ приводит к проблемам, ибо по философии дотнет программисту не дается право управлять памятью напрямую. управление памятью лежит на совести вм дотнета. суть в том что мэнэджэд программы не должны вызывать апи и старые функции. потому что это нарушает философию. для этого в дотнете есть ОГРОМНОЕ количество классов, полностью повторяющих апи. именно поэтому учиться с++ с мэнэджэд плюсов мягко говоря глупо. ты учишь наполовину с++ наполовину дотнет, причем не понимаешь, в чем суть дотнета. хочешь делать окошки - используй мфц проекты с++.
Последний раз редактировалось Ra$cal; 18.05.2009 в 20:40..
|
|
|

18.05.2009, 20:41
|
|
Познающий
Регистрация: 23.01.2009
Сообщений: 32
Провел на форуме: 96906
Репутация:
8
|
|
Внушительно.....спасибо...это достойный ответ который многое прояснил..... Держи ++ 
|
|
|

18.05.2009, 20:44
|
|
Познающий
Регистрация: 23.01.2009
Сообщений: 32
Провел на форуме: 96906
Репутация:
8
|
|
Не не дает + ставить говорит:
Вы должны добавить репутацию кому-то еще, прежде чем сможете снова добавить ее Ra$cal.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|