|
Получить данные из метода на Си++ в Си#
|
|||
---|---|---|---|
#18+
Не получается получить данные из метода в сишной дллке. Код на плюсах: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Код на шарпе: Код: c# 1. 2.
... Код: c# 1.
При вызове метода GetID срабатывает исключение: Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена. Что делаю не так, чего не хватает? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2013, 15:46 |
|
Получить данные из метода на Си++ в Си#
|
|||
---|---|---|---|
#18+
метод называется GetID, вверху опечатка (GetID1 - неправильное название) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2013, 15:48 |
|
Получить данные из метода на Си++ в Си#
|
|||
---|---|---|---|
#18+
пробовал через параметры: Код: plaintext 1. 2. 3. 4. 5. 6.
результат тот же.. Как определить аут параметр? wchar_t** ? непомогло ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2013, 15:53 |
|
Получить данные из метода на Си++ в Си#
|
|||
---|---|---|---|
#18+
result=(wchar_t*)malloc(128); ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2013, 15:55 |
|
Получить данные из метода на Си++ в Си#
|
|||
---|---|---|---|
#18+
Погуглил, в итоге наработал такой вариант: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
c#: Код: c# 1. 2. 3. 4. 5. 6. 7.
исключения больше нет, но значение переменной равно null. wtf? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2013, 16:35 |
|
Получить данные из метода на Си++ в Си#
|
|||
---|---|---|---|
#18+
Ниггадяй, c# не сможет нормально работать с результатом malloc (не сможет освободить память, в частности) вариантов несколько Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Код: c# 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2013, 21:36 |
|
Получить данные из метода на Си++ в Си#
|
|||
---|---|---|---|
#18+
Изопропил, благодарю! Спасибо большое! так: Код: plaintext 1.
работает. а как быть, если у меня внутренний метод возвращает wchar_t* и мне нужно вернуть значение из этого указателя. Если делаю так: Код: plaintext 1. 2.
то на си шарпе получаю null. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 10:12 |
|
Получить данные из метода на Си++ в Си#
|
|||
---|---|---|---|
#18+
Ниггадяй, странно, проверяйте что возвращает ObtainKey() Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Код: c# 1. 2. 3. 4. 5.
смотрите, что в р ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 10:34 |
|
Получить данные из метода на Си++ в Си#
|
|||
---|---|---|---|
#18+
Изопропил, в p адрес, ляля тополя я получаю в си шарпе, но мне нужно вернуть значение, которое возвращает ObtainKey. Вот оригинальный исходник: Код: plaintext 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. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81.
в двух словах, результатом данного метода будет указатель на значение какого-либо реквизита (например, Код: plaintext 1.
вернет серийник харда метод стабильный, под дебагом проверял, возвращает указатель, значение в консоль выводил.. но когда делаю динамическую библиотеку, чтоб из си шарпа вызывать возникают проблемы. Код: plaintext 1. 2. 3. 4.
Код: c# 1. 2.
возвращает 0, такое ощущение, что на подобии как в дотнете, работает сборщик мусора и хлопает его. есть ли какое-то ключевое слово в си++ чтоб указатель не умер после отработки метода? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 10:44 |
|
Получить данные из метода на Си++ в Си#
|
|||
---|---|---|---|
#18+
прошу извинить, что ввел в заблуждение. в режиме динамической библиотеке метод ObtainKey не работает((( Код: plaintext 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. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81.
получаю текст "Unable to retrive desktop monitors:" Код: plaintext 1. 2. 3. 4. 5. 6. 7.
не фурычит..блин ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 10:52 |
|
Получить данные из метода на Си++ в Си#
|
|||
---|---|---|---|
#18+
а точнее не проходит секурити Код: plaintext 1. 2. 3. 4. 5.
что не хватает? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 10:58 |
|
Получить данные из метода на Си++ в Си#
|
|||
---|---|---|---|
#18+
видимо надо поиграться с флагами RPC_C_AUTHN_LEVEL_CONNECT, RPC_C_IMP_LEVEL_IMPERSONATE и т.д ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 11:18 |
|
Получить данные из метода на Си++ в Си#
|
|||
---|---|---|---|
#18+
или со стороны шарпа нужно еще какой-то танец с бубном исполнить? Никто не подскажет, в си++ несилен(( ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 11:40 |
|
Получить данные из метода на Си++ в Си#
|
|||
---|---|---|---|
#18+
Ниггадяй, WMI в шарпе и без с++ работает ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 11:50 |
|
|
start [/forum/topic.php?fid=20&fpage=150&tid=1404157]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
79ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 196ms |
0 / 0 |