|
|
|
Ошибка с экспортом структуры
|
|||
|---|---|---|---|
|
#18+
Такая ситуация: в CBuilder 6 делаю структуру и объявляю ее в одном модуле, из другого пытаюсь обратиться к ней, а компилятор ругается :((. Ошибка ламерская но ничего не могу придумать. вот код Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 08:13 |
|
||
|
Ошибка с экспортом структуры
|
|||
|---|---|---|---|
|
#18+
E2294,E2062 это всё что пишет вам компилятор, никакого более внятного сообщения об ошибке нет ? Не верю. Описание структуры надо выносить в h-файл, и включать его во все cpp использующие эту структуру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 09:27 |
|
||
|
Ошибка с экспортом структуры
|
|||
|---|---|---|---|
|
#18+
А регистр символов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 09:37 |
|
||
|
Ошибка с экспортом структуры
|
|||
|---|---|---|---|
|
#18+
PapadopulosТакая ситуация: в CBuilder 6 делаю структуру и объявляю ее в одном модуле, из другого пытаюсь обратиться к ней, а компилятор ругается :((. Ошибка ламерская но ничего не могу придумать.... Странно как-то вы пишете... 1. Если "s" у Вас обозначает переменную, то формат объявления должен быть такой: extern <тип переменной> <имя переменной> . Например: Код: plaintext 1. В этой связи мне, например, непонятно, что обозначает: Код: plaintext 1. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 09:47 |
|
||
|
Ошибка с экспортом структуры
|
|||
|---|---|---|---|
|
#18+
Станислав С 2. typedef используется для задания синонима пользовательскому типу данных. В этой связи мне, например, непонятно, что обозначает: Код: plaintext 1. тайпдеф вводит новый тип данных. В данном случае - массив структур. На счет синонима, не совсем верно. Структура, не является полноценным типом данных, значит следующие представления не эквиваленты: Код: plaintext 1. 2. 3. 4. 5. Использование: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 10:02 |
|
||
|
Ошибка с экспортом структуры
|
|||
|---|---|---|---|
|
#18+
AkhСтруктура, не является полноценным типом данных...Почему вы так думаете? И кто же полноценен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 10:07 |
|
||
|
Ошибка с экспортом структуры
|
|||
|---|---|---|---|
|
#18+
Papadopulos Код: plaintext 1. 2. E2294 Structure required on left side of . or . Правильно s.X=123; E2062 Invalid indirection компилятор не понял, что ты сказал ибо сие бред. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 10:14 |
|
||
|
Ошибка с экспортом структуры
|
|||
|---|---|---|---|
|
#18+
pandrew AkhСтруктура, не является полноценным типом данных...Почему вы так думаете? И кто же полноценен? Бывают случаи, когда при объявлении переменной типа структуры, перед именем структуры необъодимо ставить struct. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 10:37 |
|
||
|
Ошибка с экспортом структуры
|
|||
|---|---|---|---|
|
#18+
С регистром в программе все правильно. Хорошо, переделал так как Станислав сказал. Теперь получается вот что: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Если объявить просто вот так: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 10:42 |
|
||
|
Ошибка с экспортом структуры
|
|||
|---|---|---|---|
|
#18+
PapadopulosС регистром в программе все правильно. Хорошо, переделал так как Станислав сказал. Теперь получается вот что: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Если объявить просто вот так: Код: plaintext 1. 2. 3. 4. 5. Да, учиться Вам еще нужно :( Те объявления (struct{}, typedef), которые Вы сделали, работают только внутри блока Unit1. Unit2 обо всех этих телодвижениях "не в курсе".... Как Вам уже говорил в данной ветке - вынесите описания в заголовочный файл (например, в Unit1.h) и подключайте этот заголовочный файл во всех модулях, использующих Вашу структуру. Т.е. будем иметь: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 10:53 |
|
||
|
Ошибка с экспортом структуры
|
|||
|---|---|---|---|
|
#18+
Станислав С Да, учиться Вам еще нужно :( Те объявления (struct{}, typedef), которые Вы сделали, работают только внутри блока Unit1. Unit2 обо всех этих телодвижениях "не в курсе".... С видимостью у меня все в порядке, именно так как вы и предложили, Станислав. Загвоздка в чем-то другом. Это объявление не работает. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 11:25 |
|
||
|
Ошибка с экспортом структуры
|
|||
|---|---|---|---|
|
#18+
Я понял, я неправильно задал вопрос. Исправляюсь. В общем мне нужно объявить массив структур и использовать его в разных модулях. а вот как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 11:26 |
|
||
|
Ошибка с экспортом структуры
|
|||
|---|---|---|---|
|
#18+
PapadopulosЭто объявление не работает. Код: plaintext Обычно екстерны прописывают в заголовочном файле модуля, в котором она сама определена. Хотя, мне кажется, что ошибка в чем-то другом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 11:29 |
|
||
|
Ошибка с экспортом структуры
|
|||
|---|---|---|---|
|
#18+
PapadopulosЯ понял, я неправильно задал вопрос. Исправляюсь. В общем мне нужно объявить массив структур и использовать его в разных модулях. а вот как? Надо работать с указателями. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 12:06 |
|
||
|
Ошибка с экспортом структуры
|
|||
|---|---|---|---|
|
#18+
Станислав, а разве имя созданной структуры не является указателем?? Приведенный вами код в Cbuilder не работает :( , синтаксис С++ видимо несколько различен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 12:50 |
|
||
|
Ошибка с экспортом структуры
|
|||
|---|---|---|---|
|
#18+
Papadopulosа разве имя созданной структуры не является указателем??Имя точно не является указателем. PapadopulosПриведенный вами код в Cbuilder не работаетчто значит не работает? Papadopulos синтаксис С++ видимо несколько различен. Различен, но не на этом уровне - ANSI С++ для этого и существует По делу: PapadopulosВ общем мне нужно объявить массив структур и использовать его в разных модулях. а вот как? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 13:07 |
|
||
|
Ошибка с экспортом структуры
|
|||
|---|---|---|---|
|
#18+
pandrew, ну не хочет такой код работать в билдере, не хочет. Насчет объявления массива структур вы правы - можно как угодно объявлять - и статически и динамически и с переопределением, в Unit1 массив видится и работает. Загвоздка в объявлении массива в Unit2. Объявление в таком синтаксисе Код: plaintext если так объявить Код: plaintext Код: plaintext В мануале ничего путного не нашел, запутался я короче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 13:27 |
|
||
|
Ошибка с экспортом структуры
|
|||
|---|---|---|---|
|
#18+
pandrew Papadopulosа разве имя созданной структуры не является указателем??Имя точно не является указателем. В смысле имя переменной-структуры не является указателем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 13:29 |
|
||
|
Ошибка с экспортом структуры
|
|||
|---|---|---|---|
|
#18+
Papadopulospandrew, ну не хочет такой код работать в билдере, не хочет. Код: plaintext видимо забыли подсунуть декларацию, т.е. #include "Unit1.h" Papadopulosесли так объявить Код: plaintext Код: plaintext так как в этой строке ничего такого(+) нет - то делаем вывод о косвенном эффекте. А что у вас за структура MyStruct2 Struct2;???Покажите декларацию. Я только что ввел все, закомментировав строку с MyStruct2, и все работает во всех вариантах (BCB5). Так что либо кривой BCB6 (без патчей), либо вы чего-то не договариваете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 13:50 |
|
||
|
Ошибка с экспортом структуры
|
|||
|---|---|---|---|
|
#18+
PapadopulosПриведенный вами код в Cbuilder не работает :( , синтаксис С++ видимо несколько различен. Вот полный текст моего тестового примера. Только что запустил его на 5-м Билдере - ошибок не обнаружено... Сидите и разбирайтесь...:) Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 13:59 |
|
||
|
Ошибка с экспортом структуры
|
|||
|---|---|---|---|
|
#18+
2Papadopulos - посмотрите настройки Project\Options\Advanced Compiler Language compiance - у меня Borland. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 14:10 |
|
||
|
Ошибка с экспортом структуры
|
|||
|---|---|---|---|
|
#18+
Всё, не парьтесь, разобрался, правильное объявление такое Код: plaintext Все равно благодарю всех. А все же, имя переменной-структуры является указателем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 14:20 |
|
||
|
Ошибка с экспортом структуры
|
|||
|---|---|---|---|
|
#18+
Papadopulos Все равно благодарю всех. А все же, имя переменной-структуры является указателем? Я считаю, что нет... Точно так же как имя переменной не является указателем.... А вот имя массива (для элементов любого типа) уже является указателем на его первый элемент... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 14:26 |
|
||
|
Ошибка с экспортом структуры
|
|||
|---|---|---|---|
|
#18+
PapadopulosА все же, имя переменной-структуры является указателем? Имя переменной типа структуры нехорошо использовать в качестве указателя на область занимаемой им памяти, но можно использовать как ссылку. Имя массива структур действительно трактуется как адрес (указатель) первого элемента массива. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 14:35 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=325&tid=2030092]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 406ms |

| 0 / 0 |
