Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
А API-функции обязательно "декларировать"?
|
|||
|---|---|---|---|
|
#18+
Т.е. например (везде extern "C" ): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Но без .h тоже компилируется и работает. А вот если вот так (со структурой): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. то еще и ругается 1>.\License.cpp(28) : error C2733: second C linkage of overloaded function 'CPP7_Check_Key' not allowed 1> .\License.cpp(27) : see declaration of 'CPP7_Check_Key' если убрать, то компилируется и работает Мож .h вообще выкинуть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 08:26 |
|
||
|
А API-функции обязательно "декларировать"?
|
|||
|---|---|---|---|
|
#18+
Дмитрий77везде extern "C" ... то еще и ругается 1>.\License.cpp(28) : error C2733: second C linkage of overloaded function 'CPP7_Check_Key' not allowed 1> .\License.cpp(27) : see declaration of 'CPP7_Check_Key'так ругается на перегрузку, которая в С не поддерживается. а "работает" что значит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 10:44 |
|
||
|
А API-функции обязательно "декларировать"?
|
|||
|---|---|---|---|
|
#18+
egorychтак ругается на перегрузку, которая в С не поддерживается. Только в одном случае ругается, а в другом нет. Мне всегда казалось, что в C/C++ должно быть 1) Definition -собственно код ф-ции 2) Declaration -заголовок с параметрами (без кода) и точка с запятой на конце Хотя по логике, если я ее не вызываю внутри самой dll, наверно и декларировать ее ни к чему. egorychа "работает" что значит? Ну, значит вызывается из другого приложения (.Net в моем случае) и возвращает правдоподобный результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 12:14 |
|
||
|
А API-функции обязательно "декларировать"?
|
|||
|---|---|---|---|
|
#18+
Дмитрий77, декларировать нужно. особенно в С++, где функции по умолчанию нифига не extern c ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 12:26 |
|
||
|
А API-функции обязательно "декларировать"?
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Мне всегда казалось, что в C/C++ должно быть 1) Definition -собственно код ф-ции 2) Declaration -заголовок с параметрами (без кода) и точка с запятой на концев С декларация - необязательна, но рекомендована, в С++, насколько помню, обязательна. Дмитрий77Ну, значит вызывается из другого приложения (.Net в моем случае) и возвращает правдоподобный результат.а ты обе-две функции из Net можешь вызвать одновременно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 12:29 |
|
||
|
А API-функции обязательно "декларировать"?
|
|||
|---|---|---|---|
|
#18+
egorychв С декларация - необязательна, но рекомендована только почему-то ругается на "дубликат", и только тогда когда структура в параметре. egorychа ты обе-две функции из Net можешь вызвать одновременно? в смысле 2 разных (с разным именем)? и что значит одновременно? ну, последовательно на кнопочки нажимаю (в продакшн тоже своя логика), разные вызываю потоками не увлекаюсь все что сделал, все работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 13:03 |
|
||
|
А API-функции обязательно "декларировать"?
|
|||
|---|---|---|---|
|
#18+
egorych2) Declaration -заголовок с параметрами (без кода) и точка с запятой на концев С декларация - необязательна, но рекомендована, в С++, насколько помню, обязательна.[/quot] Дело не в этом, а в том, что любое определение является и декларацией (объявлением) тоже. Но просто extern C не проставить по-нормальному без объявления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 14:06 |
|
||
|
А API-функции обязательно "декларировать"?
|
|||
|---|---|---|---|
|
#18+
MasterZivособенно в С++, где функции по умолчанию нифига не extern c у меня как в .cpp, так и в .h все находится внутри блоков Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 14:27 |
|
||
|
А API-функции обязательно "декларировать"?
|
|||
|---|---|---|---|
|
#18+
Дмитрий77, Ну ок, так в чём проблема оставить и определение, и объявление ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 14:50 |
|
||
|
А API-функции обязательно "декларировать"?
|
|||
|---|---|---|---|
|
#18+
Дмитрий77: >>в смысле 2 разных (с разным именем)? нет, с одинаковым, но с разными параметрами. Ты ж говоришь, что компилируется у тебя. >>и что значит одновременно? без пересборки библиотеки. Сначала одну функцию вызвал, потом - другую. Интересно, вызовятся разные функции, или одна и та же. Си умеет ведь int в указатель молча преобразовывать. WORD - это инт же, а PMODE_STATUS - указатель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 14:50 |
|
||
|
А API-функции обязательно "декларировать"?
|
|||
|---|---|---|---|
|
#18+
MasterZivДмитрий77, Ну ок, так в чём проблема оставить и определение, и объявление ?боязнь файлов развилась этим летом на sql.ru ))) были и более экзотические хотелки в Программировании недавно )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 14:51 |
|
||
|
А API-функции обязательно "декларировать"?
|
|||
|---|---|---|---|
|
#18+
Дмитрий77, У тебя там проблема в том, видимо, что твоя функция ' CPP7_Check_Key ' определена несколько раз. Т.е. их две. Поищи просто по коду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 14:55 |
|
||
|
А API-функции обязательно "декларировать"?
|
|||
|---|---|---|---|
|
#18+
MasterZiv, А чего искать то, он мою "декларацию" за второе "определение" принимает, вот конкретно когда со структурой PMODE_STATUS ModeStatus. Убрал декларацию и все OK. Бог с ним, работает и ладно. Предполагаю, что если определение заключено в extern "C" , то отдельная декларация не нужна и вредна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 15:09 |
|
||
|
А API-функции обязательно "декларировать"?
|
|||
|---|---|---|---|
|
#18+
Дмитрий77MasterZiv, А чего искать то, он мою "декларацию" за второе "определение" принимает, вот конкретно когда со структурой PMODE_STATUS ModeStatus. Убрал декларацию и все OK. Бог с ним, работает и ладно. Предполагаю, что если определение заключено в extern "C" , то отдельная декларация не нужна и вредна. Предполагаешь неверно. Пока ты даёшь куски кода, сложно что-то сказать, что там и как. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 17:35 |
|
||
|
А API-функции обязательно "декларировать"?
|
|||
|---|---|---|---|
|
#18+
MasterZivПока ты даёшь куски кода, сложно что-то сказать, что там и как.пока понятно, что у него каким то образом нарушается ODR. И, что убирая декларацию из хидера, он эту ошибку маскирует. В качестве предположения могу высказать идею, что в хидере нет include guard . Посмотреть на него было бы не лишним, конечно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2015, 14:20 |
|
||
|
А API-функции обязательно "декларировать"?
|
|||
|---|---|---|---|
|
#18+
MasterZivПока ты даёшь куски кода, сложно что-то сказать, что там и как. Если вам это интересно, то вот "полный" код. Код: 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. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2015, 18:26 |
|
||
|
А API-функции обязательно "декларировать"?
|
|||
|---|---|---|---|
|
#18+
Дмитрий77вот "полный" код. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. так есть у тебя в License.h include guard то? по представленному видно, что - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2015, 18:48 |
|
||
|
А API-функции обязательно "декларировать"?
|
|||
|---|---|---|---|
|
#18+
egorychтак есть у тебя в License.h include guard то? по представленному видно, что - нет. Ну конечно нет. Я не знаю что это такое и даже не сильно горю желанием узнать. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 1>License.h(2) : error C2006: '#include' : expected a filename, found 'identifier' 1>License.h(2) : fatal error C1083: Cannot open include file: '': No such file or directory Либо просто напиши как правильно, либо тему закрываем и я удовлетворяюсь этим: egorychчто убирая декларацию из хидера, он эту ошибку маскирует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 02:26 |
|
||
|
А API-функции обязательно "декларировать"?
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Ну конечно нет. Я не знаю что это такое и даже не сильно горю желанием узнать.я ссылку давал, тащемта. Не читатель? Код: plaintext 1. 2. 3. 4. 5. 6. 7. выделенное - называется include guard ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 10:14 |
|
||
|
А API-функции обязательно "декларировать"?
|
|||
|---|---|---|---|
|
#18+
egorych, Ну написал вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Ошибка никуда не делась (если не комментировать). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 23:15 |
|
||
|
А API-функции обязательно "декларировать"?
|
|||
|---|---|---|---|
|
#18+
Дмитрий77, Ну так давай её, ошибку-то, сюда... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2015, 16:10 |
|
||
|
А API-функции обязательно "декларировать"?
|
|||
|---|---|---|---|
|
#18+
В первом посте еще дал: Дмитрий77то еще и ругается 1>.\License.cpp(28) : error C2733: second C linkage of overloaded function 'CPP7_Check_Key' not allowed 1> .\License.cpp(27) : see declaration of 'CPP7_Check_Key' если убрать, то компилируется и работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2015, 16:49 |
|
||
|
А API-функции обязательно "декларировать"?
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Ошибка никуда не деласьподожди, а у тебя в License.h структра MODE_STATUS описана? похоже, что нет. #include "include/aspr_api.h" добавь-ка в него. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2015, 17:34 |
|
||
|
А API-функции обязательно "декларировать"?
|
|||
|---|---|---|---|
|
#18+
egorych, фу-ты нуты Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Все, понятно. Так компилируется. Ну редко я к C++ обращаюсь, нет автоматических навыков. А #pragma comment(lib,"include/aspr_ide.lib") куда вставлять? В .h или .cpp? Я в .h все перенес. P.S. Скорее всего авторы доков не предполагают использование .h с декларациями (судя по тому как их примеры оформлены). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2015, 18:04 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38995484&tid=2018928]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 284ms |
| total: | 454ms |

| 0 / 0 |
