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

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

Автор: ItsJustMe
Дата сообщения: 03.02.2013 07:34

Цитата:
никто не подскажется что это за таинственные письмена и как их использовать?

Кучка функций из RTL, для exception, rtti и еще чего-то. Они могут и не использоваться в коде модуля, но так как RTL линкуется к нему статически, то они там есть. А RTL обычно большая, так что то, что ты привел - это только весьма малая часть тех функций, что там есть.

Цитата:
никто Pelle C compiller-ом не пользуется

А на кой он нужен? Точнее, что в нем есть такого, ради чего стоит рассматривать возможность его использования? Need free C++? Use VS Express
Автор: bomzzz
Дата сообщения: 03.02.2013 08:45
он весит 39 мб - многовато я бы даже сказал. а студия весит несколько гигов с учетом фреймворков, после ее установки тупит винда и сеть по минуте после запуска винды устанавливается. мамс у меня на диске 22.5 мб занимает и то 4 мб можно выкинуть это файлы от инсталяции остались. и то это 10-ая версия а у меня процессор таких чудес не умеет. а восьмая для моего еще меньше весит на 1-2 мб. в принципе можно и библиотеки выкинуть все равно большинством не пользуюсь.
ну и Си мне надо чтоб иметь возможность что то скомпилить готовое, куда мне студию городить да еще разбираться что с ней делать
Автор: AZJIO
Дата сообщения: 03.02.2013 11:49
Скачал "CodeBlocks" и VC2008. Осталось понять как это всё работает.
Автор: vlary
Дата сообщения: 03.02.2013 12:20
bomzzz
Цитата:
а что такое это ИДЕ?
Визуальная среда разработки. Так же, как в большинстве инструментариев разработки программ, та же вижуал студио...
Ты все сделал вручную (откомпилил, слинковал), но это хорошо, когда одна простенькая программка. А если туева куча исходников, подключаемых библиотек...
Вот для этого и есть IDE. Выбирается тип проекта, добавляются файлы, потом проект "строится". Все это с готовыми шаблонами, привычными диалогами, формами с опциями, мышкой...
Автор: bomzzz
Дата сообщения: 03.02.2013 13:40
да нет мне удобнее в блокноте писать, ни редакторами с подсветкой, ни MBuilder-ом не пользуюсь. это дело привычки. мой самый длинный код 2370 строк - но я то не пример, я так редко, когда задача есть интересная и главное нужная
Автор: Mike1808
Дата сообщения: 04.02.2013 17:09
Здравствуйте. Передо мной стоит следующий выбор
Летом я начал изучать .NET C# (учусь ПМИ 3 курс), но после двух месяцев обучения забросил (дочитал в одной книжке около 400 страниц).
В универе я довольно-таки хорошо изучил C++
Так вот, меня друг пригласил работать в финансовую кантору C++ Junior Devepoler'ом

Стоит ли доизучить Сишарп или лучше начать работать под С++
Что по вашему субъективному мнение более "прогрессивнее"?
Автор: LENIN87
Дата сообщения: 08.02.2013 01:32
Приветствую!
Подскажите где лучше запостить про поиск библиотеки?
Нужна библиотека, которая бы определяла в трехмерном пространстве вектора, матрицы, лучи, фруструмы, AABB, OBB, треугольники и операции над ними: пересекает, содержит.
upd:
Это все из области компьютерной графики.
Автор: akaGM
Дата сообщения: 08.02.2013 01:38
ахренеть...
да где не запости, тебя фиг поймут....
Автор: bomzzz
Дата сообщения: 08.02.2013 04:50
даже если поймут, где ему такую библиотеку дадут
Автор: ItsJustMe
Дата сообщения: 08.02.2013 18:00
Пусть поищет на форумах DirectX или OpenGL
Автор: AZJIO
Дата сообщения: 08.02.2013 23:06
Получилось DLL сделать MyFirst2.7z. А "Microsoft Visual C++ 2008 Express Edition" только у меня на английском языке фейс?
Автор: bomzzz
Дата сообщения: 09.02.2013 06:13
AZJIO
поздравляю.

http://rutracker.org/forum/viewtopic.php?t=2566619
есть тут russian package
Автор: AZJIO
Дата сообщения: 10.02.2013 11:20
Отсюда взял функцию. Вставил этот код:

Код: #include <windows.h>

typedef void (*LPSEARCHFUNC)(LPCTSTR lpszFileName);

BOOL SearchFiles(LPCTSTR lpszFileName, LPSEARCHFUNC lpSearchFunc, BOOL bInnerFolders = TRUE)
{
LPTSTR part;
char tmp[MAX_PATH]; // временный массив
char name[MAX_PATH];

HANDLE hSearch = NULL;
WIN32_FIND_DATA wfd;
memset(&wfd, 0, sizeof(WIN32_FIND_DATA));

// сначало поиск внутри вложенных папках ...
if(bInnerFolders)
{
if(GetFullPathName(lpszFileName, MAX_PATH, tmp, &part) == 0) return FALSE;
strcpy(name, part);
strcpy(part, "*.*");

// если папки существуют, то делаем поиск
wfd.dwFileAttributes = FILE_ATTRIBUTE_DIRECTORY;
if (!((hSearch = FindFirstFile(tmp, &wfd)) == INVALID_HANDLE_VALUE))
do
{
// в каждой папке есть две папки с именами "." и ".."
// и эти папки мы не трогаем

// пропускаем папки "." и ".."
if (!strncmp(wfd.cFileName, ".", 1) || !strncmp(wfd.cFileName, "..", 2))
continue;

if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) // если мы нашли папку
{
char next[MAX_PATH];
if(GetFullPathName(lpszFileName, MAX_PATH, next, &part) == 0) return FALSE;
strcpy(part, wfd.cFileName);
strcat(next, "\\");
strcat(next, name);

SearchFiles(next, lpSearchFunc, TRUE);
}
}
while (FindNextFile(hSearch, &wfd)); // ищем следующий файл

FindClose (hSearch); // заканчиваем поиск
}

if ((hSearch = FindFirstFile(lpszFileName, &wfd)) == INVALID_HANDLE_VALUE)
return TRUE; // в противном случае выходим
do
if (!(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) // если мы нашли файл
{
char file[MAX_PATH];
if(GetFullPathName(lpszFileName, MAX_PATH, file, &part) == 0) return FALSE;
strcpy(part, wfd.cFileName);

lpSearchFunc(file);
}
while (FindNextFile(hSearch, &wfd)); // ищем следующий файл
FindClose (hSearch); // заканчиваем поиск

return TRUE;
}

void DoSomething(LPCTSTR lpszFileName)
{
MessageBox(NULL, lpszFileName, "Файл", MB_OK | MB_APPLMODAL);
}


SearchFiles("C:\*.txt", DoSomething, FALSE);
Автор: bomzzz
Дата сообщения: 10.02.2013 11:27
BOOL SearchFiles(LPCTSTR lpszFileName, LPSEARCHFUNC lpSearchFunc, BOOL bInnerFolders = TRUE)
http://netcode.ru/cpp/?lang=&katID=6&skatID=67&artID=2743

а че не пишет причину ошибки?
Автор: AZJIO
Дата сообщения: 10.02.2013 12:11
bomzzz
Что это? Исправленная строка? 5 строка такая же. Ошибка в последней строке. Функция уже инициализирована, её выполнить надо.


Цитата:
а че не пишет причину ошибки?

Пишет...

Цитата:
expected constructor, destructor or type conversion before "(" token
мне это ни о чём не говорит.
Перевод:

Цитата:
Ожидаемые конструктор, деструктор или типа преобразования перед (маркер
моя твоя не понимает.
Автор: Abs62
Дата сообщения: 10.02.2013 12:23
AZJIO
Скомпилироваться эта смесь французского с нижегородским может только если её компилировать не как юникодную. Работать пример не будет всё равно, даже если скомпилируется. А если сделать так, чтобы пример заработал, при определённых условиях такая реализация будет валить программу. Оно надо?

Цитата:
мне это ни о чём не говорит.

Где функция main()?
Автор: ne_viens
Дата сообщения: 10.02.2013 12:33
..."C:\\*.txt"...
Автор: bomzzz
Дата сообщения: 10.02.2013 17:57
помогите разобраться. поставил DDK_XP, ну и пытаюсь скомпилить код батником

Цитата:
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.00.9176 for 80x86
Copyright (C) Microsoft Corporation 1984-2001. All rights reserved.

Hello.c
Microsoft (R) Incremental Linker Version 7.00.9210
Copyright (C) Microsoft Corporation. All rights reserved.

LINK : warning LNK4078: multiple '.rdata' sections found with different attribut
es (C0000040)

.
Hello Word!
Для продолжения нажмите любую клавишу . . .



Цитата:
@ECHO OFF
COLOR 9F
C:\WINDDK\2600\bin\x86\cl /c Hello.c
C:\WINDDK\2600\bin\x86\link /LIBPATH:C:\WINDDK\2600\lib\wxp\i386 /subsystem:console Hello.obj
echo..
Hello.exe
pause



Цитата:
#include <C:\WINDDK\2600\inc\crt\stdio.h>
#include <C:\WINDDK\2600\inc\crt\conio.h>
#include <C:\WINDDK\2600\inc\crt\string.h>

int main(int argc, char **argv)
{
printf( "Hello Word!\n" );
return 0;
}


почему это предупреждение вылазит?

http://msdn.microsoft.com/en-us/library/049hc7a0%28v=vs.71%29.aspx
как вот это сделать?

Добавлено:
а никому не попадались готовые сборки С++ под коммандную строку, только BIN INC и LIB папки?
Автор: ne_viens
Дата сообщения: 10.02.2013 19:11
Ha DDK v7600.16385.1 эта ошибка отсутствует.
Что-то подобное было на старом MASMe, если включить /MERGE:.rdata=.text
Обойти можно было, если выключить сообщение этой ошибки.
Автор: bomzzz
Дата сообщения: 10.02.2013 19:25

Цитата:
Что-то подобное было на старом MASMe, если включить /MERGE:.rdata=.text

да точно есть на 6 версии ML.EXE

есть еще совет исправить read, write для data на read. да вот только я не смог найти нужные строки ни в одном инклуде.
вообщем надо взять просто файлы из последней студии
Автор: AZJIO
Дата сообщения: 10.02.2013 22:13
Сделал поиск по заголовочным файлам функции FindFirstFile нашлось в 2-х
Цитата:
include\common\wx\filefn.h
MinGW32\include\winbase.h
Выходит что для разных IDE библиотечные функции могут отличаться?
Автор: bomzzz
Дата сообщения: 11.02.2013 00:32
не знаю точно какая структура инклудов у с, и че чему соответсвует. может просто в какой то дллке реализован свой поиск файлов и она не пользуется общим.

Добавлено:
http://vsokovikov.narod.ru/New_MSDN_API/Menage_files/fn_findfirstfile.htm

Цитата:
Используемая библиотека
Kernel32.lib
Используемая DLL     -
Заголовочный файл     
- объявлено в
Winbase.h
- включено в     
Windows.h

она и так в двух местах быть должна
Автор: AZJIO
Дата сообщения: 11.02.2013 02:52
bomzzz
Это одна из WinAPI-функций, всё равно придётся увязывать в рекурсивную функцию, потому что текущий вызов возвращает дескриптор поиска для указанного каталога.
Автор: bomzzz
Дата сообщения: 11.02.2013 08:01
я имел ввиду, что в некоторых дллках попадаются подпрограммы имеющие такие же имена как апи функции, только это их собственные какие то функции для внутреннего использования. так что в инклуде она может быть прописана, хотя толку от нее никакого
Автор: ne_viens
Дата сообщения: 11.02.2013 09:32

Цитата:
...Выходит что для разных IDE библиотечные функции могут отличаться?


Описание самих функций- вряд-ли, но местоположение вполне может. Всё равно они потом в windows.h инклудятся.

Рабочий (на MCC и MinGW) FindFirstFile() код:
[more]
#ifndef UNICODE
#define UNICODE
#endif
#ifndef _UNICODE
#define _UNICODE
#endif
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>

#pragma optimize("s", on)
void find_files(short* wrkdir)
{
HANDLE hFile;
WIN32_FIND_DATA file_data;
short wrkdirtemp[MAX_PATH], buf[MAX_PATH];

if(!wrkdir || !wrkdir[0])
return;

wcscpy(wrkdirtemp, wrkdir);

if(wrkdirtemp[wcslen(wrkdirtemp)-1] != L'\\')
wcscat(wrkdirtemp, L"\\");

wsprintf(buf, L"%s*", wrkdirtemp);
hFile = FindFirstFile(buf, &file_data);
if(hFile == INVALID_HANDLE_VALUE)
return;

do
{
if(file_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
// if(wcscmp(file_data.cFileName, L".") && wcscmp(file_data.cFileName, L".."))
if('.' == *(int*)&file_data.cFileName || 0x002e002e == *(int*)&file_data.cFileName && 0 == *(short*)((char*)file_data.cFileName + 4))
continue;

wsprintf(buf, L"%s%s", wrkdirtemp, file_data.cFileName);
find_files(buf);
}
else
{
// if(!(file_data.dwFileAttributes & (FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM)))
wprintf(L"%s%s\n", wrkdirtemp, file_data.cFileName);
}
} while(FindNextFile(hFile, &file_data));

FindClose(hFile);
}

main()
{
find_files(L"C:\\temp\\");
getchar();
}
[/more]

Добавлено:

Цитата:
есть еще совет исправить read, write для data на read.


Плохой совет- в .data обычно пишут тоже.


Цитата:
да вот только я не смог найти нужные строки ни в одном инклуде.


Это link ключём делается- /SECTION
Автор: AZJIO
Дата сообщения: 11.02.2013 13:03
ne_viens
пишиет ошибку в строке 21

Цитата:
wcscpy(wrkdirtemp, wrkdir);


Цитата:
invalid conversion from 'short int*' to 'wchar_t*' [-fpermissive]

Поискал wcscpy, добавил инклуды, не помогло.
Автор: ne_viens
Дата сообщения: 11.02.2013 13:18
Тогда поменяй на:

void find_files(wchar_t* wrkdir)
{
...
wchar_t wrkdirtemp[MAX_PATH], buf[MAX_PATH];
Автор: bomzzz
Дата сообщения: 11.02.2013 13:19
AZJIO
http://www.vsokovikov.narod.ru/New_MSDN_API/Strings/fn_lstrcpy.htm
Используемая библиотека     Kernel32.lib
Используемая DLL     kernel32.dll

никакие левые дллки будут не нужны приложению
Автор: AZJIO
Дата сообщения: 11.02.2013 13:28
заработало
Автор: ne_viens
Дата сообщения: 11.02.2013 13:43
Если ещё и скобки поставить:

if('.' == *(int*)&file_data.cFileName || (0x002e002e == *(int*)&file_data.cFileName && 0 == *(short*)((char*)file_data.cFileName + 4)))

, то MinGW не одного предупреждения не выдаст даже при -Wall ключе.




Цитата:
...никакие левые дллки будут не нужны приложению


А они и так не нужны- компиляторы wcscpy() как inline функцию собирают, и MCC и MinGW.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193

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


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