28 / 22 / 11
Регистрация: 24.01.2011
Сообщений: 476
|
|
1 | |
Что можно сделать на языке C++, но нельзя сделать на C#23.03.2015, 22:39. Просмотров 5051. Ответов 19
Метки нет Все метки)
(
0
|
|
23.03.2015, 22:39 | |
Что можно/нельзя сделать на Конструкторе от ucoz? Как сделать так, что-бы текст из TextBox нельзя было убрать, но можно скопировать Что можно такого на SQL написать, чего нельзя сделать с использованием языка общего назначения? Select как сделать поле которое можно выбрать, но нельзя передать в форме |
|
![]() |
|
23.03.2015, 23:23 | 2 |
ну например ассемблерная вставка.
когда долго работаешь на плюсах, а потом что-то нужно написать на шарпе, то больше всего не хватает typedef, всяких там memset или memcpy, да и вообще простого вызова api'шных функций. создать GUI без использования api, mfc и прочего.
2
|
28 / 22 / 11
Регистрация: 24.01.2011
Сообщений: 476
|
|
23.03.2015, 23:57 [ТС] | 3 |
получается у С++ лучше преимущества?
0
|
![]() |
|
24.03.2015, 01:13 | 4 |
всё зависит от конкретной задачи. C++ я в основном использую для хуков, хака, работы с памятью, библиотек. А если что-то нужно быстро написать (причем на GUI для удобства, с использованием всяких контролов), к примеру программку для сравнения файлов, конвертер, те же трейнеры для игр, арифметические вычисления, то использую C# - на нём всё это проще и удобнее.
3
|
![]() 14836 / 11224 / 2946
Регистрация: 17.09.2011
Сообщений: 18,794
|
|
24.03.2015, 11:37 | 5 |
using же.
Если часто нужно, то можно один раз написать и использовать ![]() С другой стороны, при довольно ограниченной прямой работе с памятью эта функция не настолько востребована, чтобы вносить ее во фреймворк. Array.Copy, Buffer.BlockCopy, Marshal.Copy. Интероп через DllImport + extern же. Это для функций, у которых нет готовой обертки во фреймворке. Вот макросы — это да. Но в целом, конечно, решать на шарпе низкоуровневые задачи, под которые заточены плюсы — это все равно что карьерным экскаватором бельмо на глазу удалять.
3
|
Заблокирован
|
|
24.03.2015, 12:50 | 6 |
C# легко применяется для хаков, ботов и прочего. И любые инжекты делаются. На плюсах пишут сложные системы, требующие безупречной и точной работы. Например, космический софт
![]()
0
|
13 / 13 / 8
Регистрация: 11.10.2013
Сообщений: 102
|
||||||
24.03.2015, 16:13 | 7 | |||||
Недавно узнал, что на шарп нельзя адекватно отобразить структурку примерно следующего вида:
0
|
freeba
|
24.03.2015, 16:19
#8
|
0
|
Заблокирован
|
|
24.03.2015, 16:28 | 9 |
Это был злонамеренный жест в сторону С++
![]()
0
|
![]() 14836 / 11224 / 2946
Регистрация: 17.09.2011
Сообщений: 18,794
|
||||||
24.03.2015, 16:38 | 10 | |||||
0
|
13 / 13 / 8
Регистрация: 11.10.2013
Сообщений: 102
|
||||||
24.03.2015, 17:06 | 11 | |||||
kolorotur, так проблема в том, что длина сишной строки не известна заранее. В оригинале в этих структурах ещё содержится переменная с длиной включённой строки.
А так да. Насколько я понял можно ещё так было бы описать, например:
0
|
![]() 14836 / 11224 / 2946
Регистрация: 17.09.2011
Сообщений: 18,794
|
|
24.03.2015, 17:22 | 12 |
Если длина неизвестна заранее, то это указатель. Со всеми вытекающими.
В этом случае достаточно затолкать в структуру ссылку на массив или тот же указатель.
0
|
13 / 13 / 8
Регистрация: 11.10.2013
Сообщений: 102
|
|
24.03.2015, 17:27 | 13 |
Тогда же придётся иметь в структуре IntPtr вместо string и маршаллить вручную?
0
|
![]() 14836 / 11224 / 2946
Регистрация: 17.09.2011
Сообщений: 18,794
|
|
24.03.2015, 17:33 | 14 |
IntPtr, char*, char[], string, StringBuilder — в зависимости от того, как выглядит сишная структура.
Как именно она выглядит в вашем случае?
0
|
13 / 13 / 8
Регистрация: 11.10.2013
Сообщений: 102
|
||||||
24.03.2015, 17:40 | 15 | |||||
0
|
![]() 14836 / 11224 / 2946
Регистрация: 17.09.2011
Сообщений: 18,794
|
||||||
24.03.2015, 18:30 | 17 | |||||
vJRoF, если такую структуру надо маршаллить из неуправляемого кода, то объявляйте член как массив и маршальте как ByValArray
Добавлено через 1 минуту Провалы можно эмулировать через goto case:
1
|
540 / 348 / 206
Регистрация: 27.11.2014
Сообщений: 1,043
|
|
24.03.2015, 18:44 | 18 |
HAIRY, есть совсем очевидная вещь:
- можно написать программу, которая будет работать быстрее Казалось бы веский аргумент, на писать на шарпе проще. Можно сложить мозг в коробку рядом, и уверенно прогать. Проще писать на шарпе.
0
|
![]() |
|||||||||||
24.03.2015, 19:33 | 19 | ||||||||||
будете добры перевести
![]()
можно конечно понаделать собственных классов и вызывать WriteProcessMemory точно также одной строкой. Но всё же)
0
|
![]() 14836 / 11224 / 2946
Регистрация: 17.09.2011
Сообщений: 18,794
|
|
24.03.2015, 19:42 | 20 |
Если отбросить всю требуху, то обычный делегат
![]() На сам вызов? Тоже одну строчку. Ну ладно, строчка будет чуть длиннее, потому что если делать по уму, то метод вызывается через ссылку на статический класс. Ну да, делаем один раз класс со всеми импортами и дальше наслаждаемся ![]() В плюсах тоже инклюды прописывать надо!!!1
1
|
24.03.2015, 19:42 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь. Как сделать, что бы нельзя было изменить выбор в тесте?
Без использования CSS сделать так, что бы картинку нельзя было перетягивать Почему эти значение нельзя сравнить, и что нужно сделать, чтобы исправить ошибку? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |