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

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

Автор: kotlomoy
Дата сообщения: 22.01.2013 23:57
bomzzz

Цитата:
а ты не можешь у себя эти файлики вытащить?

У меня 2010-я студия
Автор: bomzzz
Дата сообщения: 23.01.2013 00:01
а она как нибудь обновляется эта студия? посмотри пожалуйста какой версии файл ml.exe
Автор: ItsJustMe
Дата сообщения: 23.01.2013 01:10
In VS 2010 ml version is 10.0.40219
In VS 2012 ml version is 11.0.51106
Автор: kotlomoy
Дата сообщения: 23.01.2013 01:10
bomzzz
Студия обновляется, версия файла ml.exe 10.0.40219.1
Автор: AZJIO
Дата сообщения: 23.01.2013 01:14
Является ли процесс компиляции вызовом последовательных команд? Я хочу использовать Notepad++ как редактор кода, а вызов компиляции делать через плаг NppExec.
Автор: bomzzz
Дата сообщения: 23.01.2013 01:17
AZJIO
в масме так и делается
kotlomoy
http://rghost.ru/43243442
не можешь мне заменить файлы в этом архиве на новые версии, пожалуста из 10-ой студии. 12 на хп вообще не хатит работать
Автор: AZJIO
Дата сообщения: 23.01.2013 01:39
Хочу сделать DLL содержащей рекурсивную функцию поиска файлов. Есть ли готовый вариант, или как сделать.
Автор: bomzzz
Дата сообщения: 23.01.2013 01:46
готовый может и есть, даже наверняка есть может не ввиде дллки. через апи функции FindFirstFile
http://vsokovikov.narod.ru/New_MSDN_API/Menage_files/fn_findfirstfile.htm
FindNextFile
http://vsokovikov.narod.ru/New_MSDN_API/Menage_files/fn_findnextfile.htm
дллка просто делается. примеров тоже хватает

погугли примеры готового кода, на любом языке пойдет переделать просто
Автор: AZJIO
Дата сообщения: 23.01.2013 02:00
Функция у меня уже есть, я просто хочу её переделать на C++
Автор: bomzzz
Дата сообщения: 23.01.2013 02:02
подожди кто нибудь напишет.

Цитата:
.386

.model flat, stdcall
option casemap :none

include \MASM32\INCLUDE\windows.inc
include \MASM32\INCLUDE\user32.inc
include \MASM32\INCLUDE\kernel32.inc
includelib \MASM32\LIB\user32.lib
includelib \MASM32\LIB\kernel32.lib

.data
mestitle    db "Bomz",0
filename    db "1.txt",0

.data?
adress_file    WIN32_FIND_DATA <>

.code
start:

    invoke FindFirstFile, addr filename, addr adress_file
    .IF eax != INVALID_HANDLE_VALUE
        invoke FindClose, eax
        invoke MessageBox,0,ADDR adress_file.cFileName,ADDR mestitle,MB_ICONASTERISK
    .ENDIF
invoke ExitProcess,0
end start


будешь делать не забудь добавить проверку на то директория или файл чтоб различать

Добавлено:

Цитата:
    invoke FindFirstFile, ebx, addr adress_file
    .IF eax != INVALID_HANDLE_VALUE
    invoke FindClose, eax
    mov eax, adress_file.dwFileAttributes
    and eax, FILE_ATTRIBUTE_DIRECTORY
    .if !eax
Автор: AZJIO
Дата сообщения: 23.01.2013 02:22

Цитата:
будешь делать не забудь добавить проверку на то директория или файл чтоб различать

Как я могу забыть самое основное? В конце предполагается не только директорию и файл различать, предпологается будет маска поиска, флаг инвертирования маски, допустимый уровень вложения, исключения путей из поиска, учёт регистра в маске. Ну и дополнительные параметры возврат результата, список, массив, полные пути, относительные. Просто я посчитал пока рано спрашивать об этом, мне бы соорудить простейшую обёртку которую можно наращивать.
Автор: bomzzz
Дата сообщения: 23.01.2013 02:25
а как она будет вызываться дллка? это для вин пе сборки? батники кстати тоже эту апи функцию используют

Добавлено:
практически уверен что тебе сделают. если что стукнись мне в личку но я только на масме умею
Автор: AZJIO
Дата сообщения: 23.01.2013 02:39
bomzzz

Цитата:
это для вин пе сборки?
Нет, для ускорения поиска и обучения. Функция давно мной написана FileOperations и с описанием на русском
Батники кстати криво работают с маской для них *.doc захватывает *.docx, а некоторые комбинации (например s*.???.*) возвращают вообще от балды.


Цитата:
а как она будет вызываться дллка?
Как на C++ пока незнаю, но на AutoIt3 есть функция DllCall.
Кстати исходники AutoIt (на C++) доступны до версии 3.1.0, а там ещё не было этой функции.
Автор: bomzzz
Дата сообщения: 23.01.2013 03:10
на Си легко вызывается. или при компилировании или LoadLibruary GetProcAddress
Автор: ItsJustMe
Дата сообщения: 23.01.2013 04:44
bomzzz
http://rghost.ru/43244112
Альтернативный набор файлов, запрошенный у kotlomoy. Так как набор альтернативный, то скачивая его, вы принимаете на себя все возможные риски, включая падение астероида и нашествие рыжих тараканов.
Автор: ne_viens
Дата сообщения: 23.01.2013 09:30
>AZJIO Компилятор к Notepad+ можно прикрутить и без плагина. Я сконфигурировал shortcuts.xml так, чтобы соответсвующие *.cmd файлы вызывались из \Run меню. А в *.cmd записал чуть подправленное содержание vcvars32.bat
Автор: AZJIO
Дата сообщения: 23.01.2013 10:10
ne_viens
Да, я тоже активно пользуюсь shortcuts.xml, но я подумал что отладчик должен перенаправлять команды в консоль Notepad++, как это сделать в shortcuts.xml я не знаю, а NppExec делает. Если что вот моя сборка Notepad++.
Автор: bomzzz
Дата сообщения: 23.01.2013 11:40
ItsJustMe


все работает с ними.

msvcr100_clr0400.dll вот за эту особенно спасибо. в дистрибутиве ее не нашел. сначала просто переименовал msvcr100.dll, потом в инете скачал две и все разного размера. теперь точно нормальная
Автор: bomzzz
Дата сообщения: 23.01.2013 20:21
AZJIO
я тут в файлах масма разбирался, тут используется вот такой POASM
http://www.smorgasbordet.com/pellesc/
выкалупанный из альтернативного Си компилятора, так как код полностью совпадает с МАСМ-ом думаю и сишный совпадет. весит он мало и как тебе хотелось пишешь в блокноте компилируешь батником или интерфейсом.
Автор: dimon0476
Дата сообщения: 31.01.2013 21:40
МОжет кто подсказать, где скачать оригинальный образ MS Visual C++ 2008 standart rus и можно ли проверить МД5 на сайте МС? Или лучше пользоваться Express?
Автор: say24
Дата сообщения: 31.01.2013 21:51
Устал ломать голову, предлагаю вопрос на обсуждение:
Всё по порядку:
1. Visual Studio 2010, C++
2. Делаю внешнюю DLL - для вызова совсем из другой среды.
3. Выяснил, что крэшится оно на участке, вызывающем memmove_s

Теперь о неопнятках:
1. Вызов происходит так:
if(условие) memmove_s(...);
условие - специально для проверки сделано неисполнимым, ну практически написано if(false) memmove_s(...);
При этом, если строка с вызовом закомментарена - всё ОК, а если нет, то при вызове DLL из внешней среды - падает. Причём падает очень интересно - лог не пишется вообще, хотя по ходу кода файл с логом закрывается после каждой записи.
2. memmove_s используется для сдвига части массива (внутри самого массива). Если массив передаётся как указатель из внешней среды - всё работает. А если массив создан внутри DLL - как раз и происходит сбой.
3. Ошибки связаны с использованием памяти, не принадлежащей процессу... Не надо, прочтя этот пункт, говорить "ха-ха" - это никак не объясняет фантастику с крэшем после снятия комментария с итак неисполняющейся строки; кроме того, непонятно почему функция работает, при вызове извне - размеры и типы массивов - одинаковые, всё проверено.

Автор: kotlomoy
Дата сообщения: 31.01.2013 22:38
say24
А что мешает самому посмотреть в отладчике?
Автор: say24
Дата сообщения: 31.01.2013 23:08
kotlomoy
В отладчике - моделировать всё надо. Писать надо что-то вызывающее нужную функцию. Я ж говорю, что это DLL для вызова из другой среды. К тому же - я и так знаю, что крэшится на строке вызова memmove_s...


Однако, закралось у меня одно подозрение: массивы - несколько штук по 100`000 элементов, может под них память не выделяется? Хотя... если это double - это всего-то
800 КБайт под один массив.
Автор: say24
Дата сообщения: 01.02.2013 06:50



Нашёл в чём ошибка... Вредно писать один продукт сразу на двух похожих языках - отсюда и ошибки: что нормально в одном языке - ошибка в другом.

Однако, в чём прикол с крэшем на неработающем коде "if(false) memmove_s(...);" - похоже так и останется тайной...
Автор: V0lt
Дата сообщения: 01.02.2013 21:15
Есть код:

Код: int n1 = 64;
unsigned int n2 = 64;
UINT64 n3 = 64;

UINT64 test0 = 1ui64 << 64;
UINT64 test1 = 1ui64 << n1;
UINT64 test2 = 1ui64 << n2;
UINT64 test3 = 1ui64 << n3;
Автор: bomzzz
Дата сообщения: 01.02.2013 21:17
никто Pelle C compiller-ом не пользуется
http://www.smorgasbordet.com/pellesc/
не приведете пример простого кода Hello Word и как его скомпилить ...

никто не подскажется что это за таинственные письмена и как их использовать?
[more]public: __thiscall __non_rtti_object::__non_rtti_object(class __non_rtti_object const &)
public: __thiscall __non_rtti_object::__non_rtti_object(char const *)
private: __thiscall bad_cast::bad_cast(char const * const *)
public: __thiscall bad_cast::bad_cast(char const * const &)
public: __thiscall bad_cast::bad_cast(class bad_cast const &)
public: __thiscall bad_cast::bad_cast(char const *)
public: __thiscall bad_typeid::bad_typeid(class bad_typeid const &)
public: __thiscall bad_typeid::bad_typeid(char const *)
public: __thiscall exception::exception(char const * const &)
public: __thiscall exception::exception(class exception const &)
public: __thiscall exception::exception(void)
public: virtual __thiscall __non_rtti_object::~__non_rtti_object(void)
public: virtual __thiscall bad_cast::~bad_cast(void)
public: virtual __thiscall bad_typeid::~bad_typeid(void)
public: virtual __thiscall exception::~exception(void)
public: virtual __thiscall type_info::~type_info(void)
void * __cdecl operator new(unsigned int)
void __cdecl operator delete(void *)
public: class __non_rtti_object & __thiscall __non_rtti_object::operator=(class __non_rtti_object const &)
public: class bad_cast & __thiscall bad_cast::operator=(class bad_cast const &)
public: class bad_typeid & __thiscall bad_typeid::operator=(class bad_typeid const &)
public: class exception & __thiscall exception::operator=(class exception const &)
public: int __thiscall type_info::operator==(class type_info const &)const
public: int __thiscall type_info::operator=(class type_info const &)const
const __non_rtti_object::`vftable'
const bad_cast::`vftable'
const bad_typeid::`vftable'
const exception::`vftable'
public: virtual void * __thiscall __non_rtti_object::`vector deleting destructor'(unsigned int)
public: virtual void * __thiscall bad_cast::`vector deleting destructor'(unsigned int)
public: virtual void * __thiscall bad_typeid::`vector deleting destructor'(unsigned int)
public: virtual void * __thiscall exception::`vector deleting destructor'(unsigned int)
public: void __thiscall bad_cast::`default constructor closure'(void)
public: void __thiscall bad_typeid::`default constructor closure'(void)
public: virtual void * __thiscall __non_rtti_object::`scalar deleting destructor'(unsigned int)
public: virtual void * __thiscall bad_cast::`scalar deleting destructor'(unsigned int)
public: virtual void * __thiscall bad_typeid::`scalar deleting destructor'(unsigned int)
public: virtual void * __thiscall exception::`scalar deleting destructor'(unsigned int)
void * __cdecl operator new[](unsigned int)
void __cdecl operator delete[](void *)
int (__cdecl*__cdecl _query_new_handler(void))(unsigned int)
int __cdecl _query_new_mode(void)
int (__cdecl*__cdecl _set_new_handler(int (__cdecl*)(unsigned int)))(unsigned int)
int __cdecl _set_new_mode(int)
void (__cdecl*__cdecl _set_se_translator(void (__cdecl*)(unsigned int,struct _EXCEPTION_POINTERS *)))(unsigned int,struct _EXCEPTION_POINTERS *)
public: int __thiscall type_info::before(class type_info const &)const
public: char const * __thiscall type_info::name(void)const
public: char const * __thiscall type_info::raw_name(void)const
void (__cdecl*__cdecl set_new_handler(void (__cdecl*)(void)))(void)
void (__cdecl*__cdecl set_terminate(void (__cdecl*)(void)))(void)
void (__cdecl*__cdecl set_unexpected(void (__cdecl*)(void)))(void)
void __cdecl terminate(void)
void __cdecl unexpected(void)
public: virtual char const * __thiscall exception::what(void)const
[/more] - это экспортированные и раздекорированные имена из ддлки msvcrt



http://rghost.ru/43476630
это в масме делал библиотеку из дллки и эти самые имена просто исключил. но у меня есть несколько библиотек сделанных другими людьмии у них туда эти имена входят если просмотреть файл. полагаю что эти библиотеки сделаны с помощью Си компилятора. ну и вообще хочу хотя бы понять что это
Автор: vlary
Дата сообщения: 01.02.2013 21:37
bomzzz

Цитата:
никто Pelle C compiller-ом не пользуется
Это вопрос или утверждение?
Автор: bomzzz
Дата сообщения: 01.02.2013 21:44
вапрос конечно
Автор: vlary
Дата сообщения: 01.02.2013 22:53
bomzzz Наверное пользуются. Также как Mingw, lcc-win, Watcom, Borland...

Цитата:
не приведете пример простого кода Hello Word и как его скомпилить ...

Так Си он и в Африке Си. Консольный Hello Word вполне стандартный.
Ну а поскольку у этого чуда есть даже IDE,
создать проект
File New Project Empty Projects: Win32 Console Program
добавить в проект hello.c

Код: #include <stdio.h>
#include <conio.h>
#include <string.h>

int main(int argc, char **argv)
{
printf( "Hello Word!\n" );
return 0;
}
Автор: bomzzz
Дата сообщения: 01.02.2013 23:36

Цитата:
у этого чуда есть даже IDE,

а что такое это ИДЕ?

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

ошибку я пабедил - надо было на новую строку перейти в конце текста программы

Добавлено:
ура заработала!! там же нет wait типа в конце - запустил ее из cmd

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193

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


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