|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
Мне нужно отладить некоторые довольно сложные алгоритмы которые бегут в эмбедед системе. На таргете это делать неудобно и муторно а в шарпе GUI и все дела. В оригинальном коде я беру указатель переменной Код: c# 1. 2.
получаю значение по указателю Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
и записываю значению по указателю Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Как мне сэмулировать это на С-шарп? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 14:25 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
на строчке token.name[i++] = expr[exp_idx++]; ругается Error CS0200 Property or indexer 'string.this[int]' cannot be assigned to -- it is read only что ему не нравиться? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 15:00 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
Если это продолжение этой темы , то ты еще забыл упомянуть про union, которому в C# нет аналогов. ИМХО проще всего забыть про указатели и сделать с помощью BitConverter . ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 15:05 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
jenya7 Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
на строчке token.name[i++] = expr[exp_idx++]; ругается Error CS0200 Property or indexer 'string.this[int]' cannot be assigned to -- it is read only что ему не нравиться? string в C# только для чтения, нельзя там буквы менять. Используй массивы. PS Не самая хорошая идея в C# отлаживать С-ишный код. Как вариант может сделать DLL на С и вызывать её. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 15:13 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
Dima Tstring в C# только для чтения, нельзя там буквы менять. Используй массивы. Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 15:27 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
Dima Tjenya7 Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
на строчке token.name[i++] = expr[exp_idx++]; ругается Error CS0200 Property or indexer 'string.this[int]' cannot be assigned to -- it is read only что ему не нравиться? string в C# только для чтения, нельзя там буквы менять. Используй массивы. PS Не самая хорошая идея в C# отлаживать С-ишный код. Как вариант может сделать DLL на С и вызывать её. спасибо. попробую. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 15:27 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
Dima TЕсли это продолжение этой темы , то ты еще забыл упомянуть про union, которому в C# нет аналогов. Есть десантные войска и нет задач не выполнимых. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 15:49 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
Зачем эмулировать, если есть просто unsafe код с указателями. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 15:56 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
fkthatЗачем эмулировать, если есть просто unsafe код с указателями. о! то что доктор прописал! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 16:32 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
fkthatЗачем эмулировать, если есть просто unsafe код с указателями. Error CS0227 Unsafe code may only appear if compiling with /unsafe ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 16:39 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
jenya7fkthatЗачем эмулировать, если есть просто unsafe код с указателями. Error CS0227 Unsafe code may only appear if compiling with /unsafe В гугле забанили? Error CS0227 В свойствах проекта поставь галку "Разрешить небезопасный код" ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 16:45 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
так работает - с локальной переменной Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
но если я подставляю глобальную переменную Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
получаю Error CS0212 You can only take the address of an unfixed expression inside of a fixed statement initializer ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 18:05 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
jenya7, Да, указатели можно использовать только внутри конструкции fixed . Потому что может в любой момент сработать мусорщик, переместить указуемый объект в другое место и указатель станет неправильным. Fixed на время запрещает мусорщику перемещать объект на который указывает указатель. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 18:18 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
fkthatjenya7, Да, указатели можно использовать только внутри конструкции fixed . Потому что может в любой момент сработать мусорщик, переместить указуемый объект в другое место и указатель станет неправильным. Fixed на время запрещает мусорщику перемещать объект на который указывает указатель. так работает Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 18:22 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
ЕвгенийВ Код: c# 1. 2. 3. 4. 5.
Так можно отстрелить себе ногу из-за "интернирования" строк. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 18:25 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
jenya7так работает Нет. Потому что "After the code in the statement is executed, any pinned variables are unpinned and subject to garbage collection. Therefore, do not point to those variables outside the fixed statement." Неплохо бы было, если бы компилятор отлавливал подобные ляпы (еще такой же типичный ляп - это вернуть из метода переменную объявленную в "using"), но он этого не умеет (хотя, вполне возможно, что какой-нибудь решарпер такое даже делает, но не пользуюсь, поэтому точно не знаю). ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 18:43 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
fkthatjenya7так работает Нет. Потому что "After the code in the statement is executed, any pinned variables are unpinned and subject to garbage collection. Therefore, do not point to those variables outside the fixed statement." Неплохо бы было, если бы компилятор отлавливал подобные ляпы (еще такой же типичный ляп - это вернуть из метода переменную объявленную в "using"), но он этого не умеет (хотя, вполне возможно, что какой-нибудь решарпер такое даже делает, но не пользуюсь, поэтому точно не знаю). но после *ptr = 5; я вижу в Params.motor_rt_params[0].position - 5. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 18:52 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
jenya7но после *ptr = 5; я вижу в Params.motor_rt_params[0].position - 5. А в другой раз можешь увидеть вообще непонятно что, если мусорщик кучу уплотнит. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 19:42 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
jenya7но после *ptr = 5; ... Это можно написать в С/С++, хотя лучше union как я уже советовал, но не делай такого в C#. Это даже для С нездорово, но С это правильно поймет, а C# это совсем другой язык, тут так нельзя. Если можешь сделать DLL, то лучше сделай. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 20:00 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
кстати, для справки :) если открыть окно Memory 1 или 2,3,4 в строке адреса можно вводить адрес памяти в hex, можно вводить и имена переменных, методов и т.д. Всё это поддерживается и в QuickWatch и скорее всего в прочих окнах отладчика, с unsafe операторами для локальных переменных знач. типа (в стеке) &varName для переменной ссылочного типа на объект просто имя переменной varName. первые x байт в открывшейся области памяти, это TypeHandler, дальше кишки объекта в куче, не забываем, что если получить адрес переменной через &varName, это будет стек и смотреть надо наверх, а не вниз бывает полезно, но не особо, чтоб уж так :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 20:30 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
jenya7, а что просто на плюсах проект не завести? и хоть заотлаживайся, вывод в консоль и вперёд ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 22:45 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
kealon(Ruslan)jenya7, а что просто на плюсах проект не завести? и хоть заотлаживайся, вывод в консоль и вперёд в плюсах нет оконных приложений. не понятно как визуальные компоненты добавлять. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 08:18 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
jenya7kealon(Ruslan)jenya7, а что просто на плюсах проект не завести? и хоть заотлаживайся, вывод в консоль и вперёд в плюсах нет оконных приложений. не понятно как визуальные компоненты добавлять.тогда дельфи))) Как ты совмещаешь несовместимое? ГУИ и низкоуровневое? Так не бывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 08:32 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
jenya7, А зачем тебе для отладки обязательно оконное приложение? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 08:55 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
jenya7kealon(Ruslan)jenya7, а что просто на плюсах проект не завести? и хоть заотлаживайся, вывод в консоль и вперёд в плюсах нет оконных приложений. не понятно как визуальные компоненты добавлять. зачем для jenya7Мне нужно отладить ...гуи? консоли с лихвой хватит и тестить это гораздо удобнее, сравнил дифом модельный вывод и текущий, совпадает - значит всё работает и сочинять ничего не придётся, плюсовый компилятор поддерживает с "из коропки" ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 08:56 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
kealon(Ruslan)консоли с лихвой хватит А лучше даже вообще не консоль, а брать сразу Xunit/Nunit или что-то подобное и писать под ним тесты - это вот уже будет по-взрослому. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 09:33 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
Получается автор, ты две страницы не туда. Скрипач-ГУИ не нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 09:37 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
jenya7kealon(Ruslan)jenya7, а что просто на плюсах проект не завести? и хоть заотлаживайся, вывод в консоль и вперёд в плюсах нет оконных приложений. не понятно как визуальные компоненты добавлять. Не поверишь, но оконные приложения есть даже в ассемблере. Microsoft Office на чем по твоему написан? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 09:55 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
ЕвгенийВMicrosoft Office на чем по твоему написан? Ну уж я думаю, хоть и не целиком на том же шарпе, но и не на ассемблере, это точно :)) Тут уже разговор о другом - начешуя вообще для тестов гуи (а то даже и консольное приложение). ТС собирается сидеть, и каждый тест вводя руками данные и тыкая мышкой запускать? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 10:12 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
fkthatjenya7, А зачем тебе для отладки обязательно оконное приложение? изменять параметры в ран тайм. эмулировать показания разных датчиков ну и тому подобное. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 12:26 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
[quot kealon(Ruslan)]jenya7пропущено... гуи? консоли с лихвой хватит и тестить это гораздо удобнее, сравнил дифом модельный вывод и текущий, совпадает - значит всё работает и сочинять ничего не придётся, плюсовый компилятор поддерживает с "из коропки" Petro123Получается автор, ты две страницы не туда. Скрипач-ГУИ не нужен. Я конечно не знаю чем вы занимаетесь и что вы програмируете. А вот у нас для отладки создаются приложения с десятками компонентов ввода вывода. Правда в основном на LabView но мне не хочется с ним заморачиваться. Хотя LabView очень крут. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 12:34 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
jenya7Я конечно не знаю чем вы занимаетесь и что вы програмируетемы здесь для того чтобы делится опытом Я прикладник и выношу операции с указателями и вставками ассемблера в отдельные библиотеки. То есть не мешаю с гуи. jenya7вот у нас для отладки создаются приложения с десятками компонентов ввода выводану и покажите скрины или аналоги. Не нобелевка же. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 12:46 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
Petro123jenya7вот у нас для отладки создаются приложения с десятками компонентов ввода выводану и покажите скрины или аналоги. Не нобелевка же. не знаю насколько я могу светить экранами. я не уверен насколько они classified. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 13:09 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
jenya7не знаю насколько я могу светить экранами. я не уверен насколько они classified.гугле аналогов нет? Везет нам нам на изобретателей новых подходов)....куда никто не ходил. Замазать же можете...черными квадратами) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 13:36 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
jenya7, автотесты гуи это конечно хорошо, но каким боком они к вам - непонятно а jenya7изменять параметры в ран тайм. эмулировать показания разных датчиков ну и тому подобное.составьте варианты входных данных и всё, не вижу где гуи здесь нужен ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 13:43 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
Petro123jenya7не знаю насколько я могу светить экранами. я не уверен насколько они classified.гугле аналогов нет? Везет нам нам на изобретателей новых подходов)....куда никто не ходил. Замазать же можете...черными квадратами) тебя в гугле тоже забанили? http://www.ni.com/ru-ru/shop/labview/labview-details.html ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 14:07 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
fkthatЕвгенийВMicrosoft Office на чем по твоему написан? Тут уже разговор о другом - начешуя вообще для тестов гуи (а то даже и консольное приложение). ТС собирается сидеть, и каждый тест вводя руками данные и тыкая мышкой запускать? Потому как через визуальную составляющую человек воспринимает львиную долю информации. Проще сообразить, что пошло не так и проще поменять вручную. Ну дурачки же придумали такие клевые штуки ! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 14:12 |
|
Эмуляция указателей в С-шарп
|
|||
---|---|---|---|
#18+
ЕвгенийВPetro123пропущено... гугле аналогов нет? Везет нам нам на изобретателей новых подходов)....куда никто не ходил. Замазать же можете...черными квадратами) тебя в гугле тоже забанили? http://www.ni.com/ru-ru/shop/labview/labview-details.html то есть он пишет свой рукописный labView. Так? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 15:14 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1398937]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
132ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 249ms |
0 / 0 |