|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
Привет! Сразу сказу что в C++ я абсолютный нуб. Установил Code::Blocks и пытаюсь скомпилировать простенький вроде код, но получаю ошибки автор... was not declared in this scope В опциях компилятора пробовал указывать поддержку c++11 и c++14 , но не помогло Как это скомпилировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2019, 16:47 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
#include <windows.h> ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2019, 17:06 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
Aklin, Спасибо! Теперь ругается так: ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2019, 17:18 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
На случай если ты не знаешь: в Code::Blocks можно копировать текст ошибки в буфер. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2019, 17:24 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
Надо полагать, что LoadLibrary нужно заменить на LoadLibraryA или LoadLibraryW, я хз, но может помочь (а может не помочь). А вообще это не от кодеблокс зависит... И гуглинг тут помогает. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2019, 17:27 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
Если это WinAPI, то там HINSTANCE LoadLibrary( LPCTSTR lpLibFileName // address of filename of executable module ); а не LPWSTR... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2019, 17:50 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
Заработало: Код: 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.
Непонятно вот что - для любого правильного имени функции в консоли выводится авторfunc_addr = 1 Как я понимаю там должны быть разные значения для разных функций, а выводится всегда 1 Что не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2019, 17:53 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
Погуглил что такое FARPROC - указатель. По-видимому так просто в строку не конвертируется. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2019, 18:11 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
SQL-TalkerПогуглил что такое FARPROC - указатель. Гугли дальше: https://stackoverflow.com/questions/53129402/why-pointer-to-function-is-equal-to-1 Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2019, 18:30 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
Теперь пытаюсь вызвать функцию с параметром ( SetLangId ) и в ответ получаю заведомо неверное значение - ответ приходит FALSE, тогда как функция всегда возвращает TRUE Код: Код: 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.
Возможно что-то не так с объявлением типа функции? DLL написана на Delphi и заголовок функции выглядит так: Код: pascal 1.
Как мне ее правильно вызвать? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2019, 18:34 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
SQL-TalkerВозможно что-то не так с объявлением типа функции? А сравнить объявления побуквенно и заметить отсутствие в одном из них STDCALL?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2019, 18:54 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Я сразу написал наверху, что я нуб в C++ . Это первый мой опыт, так что не сильно кидайтесь тапками )) Как мне правильно вызвать эту функцию? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2019, 18:55 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
Вот так пробовал: Код: plaintext 1.
Но не помогло ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2019, 18:59 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
SQL-TalkerЯ сразу написал наверху, что я нуб в C++ . Ну так умение сравнивать буквы вроде бы языконезависимое... Теперь копай дальше: выясняй что такое BOOL в Си и что такое BOOL в Delphi (размеры). Это тот случай, когда совпадение букв не гарантирует совпадения содержимого. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2019, 19:26 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Для типа BOOL и Delphi и в C++ FALSE = 0, а вот TRUE в Delphi содержит -1. То есть ответ пришел тот что и должен был прийти, но для C++ это значение не является TRUE Получается, при написании DLL на Delphi следует избегать использования булевского типа? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2019, 13:17 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
SQL-TalkerДля типа BOOL и Delphi и в C++ FALSE = 0, а вот TRUE в Delphi содержит -1. То есть ответ пришел тот что и должен был прийти, но для C++ это значение не является TRUE И в чем тут противоречие? -1 для С++ это TRUE. Тебе же написали: размеры проверяй. В С++ BOOL - 4 байта, bool - 1 байт. Как оно в дельфи - хз. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2019, 13:26 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
Dima T, В Дельфи: BOOL = 4 байта true = -1 ($FFFFFFFF) false = 0 Я вычитал что в C++ для типа BOOL true = 1 поэтому и увидел противоречие ( https://www.transl-gunsmoker.ru/2009/04/bool-boolean-integer.html ) код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Тут получается так, что функция возвращает True и в консоль выводится "-1" , но в flg НЕ содержится значение TRUE ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2019, 13:53 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
В С/С++ true это все что не 0. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2019, 13:55 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
Не надо так писать Код: plaintext 1.
Лучше так Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2019, 13:56 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
Dima TНе надо так писать Код: plaintext 1.
Лучше так Код: plaintext 1.
По второму варианту заработало :)) Спасибо. Но почему не работает по первому? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2019, 14:02 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
Теперь пытаюсь получить строку: Заголовок функции в дельфи: Код: pascal 1.
Код: plaintext 1. 2. 3. 4.
Получаю ошибку при компиляции: cannot convert 'GetLastErrText_funtype {aka wchar_t* (__attribute__((__stdcall__)) *)()}' to 'BSTR {aka wchar_t*}' in assignment Что не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2019, 14:08 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
SQL-Talkerпочему не работает по первому? Код: sql 1.
Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2019, 14:21 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Ясно, спасибо! По поводу последней ошибки компиляции есть мысли в чем может быть причина? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2019, 15:51 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
SQL-Talkerесть мысли в чем может быть причина? В том, что написанный код - бессмысленный бред. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2019, 16:07 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
Судя по всему тут неправильно написана работа с типом BSTR. Можете поправить код или подсказать что поправить? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2019, 17:46 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
SQL-TalkerМожете поправить код или подсказать что поправить? Консерваторию надо править в области порядка вычисления выражений. И не отнекивайся что ты, мол, "в С++ ни в зуб ногой": это базовая логика и не зависит от языка программирования. Ты приводишь результат выполнения функции к указателю на функцию. В данном случае это бред. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2019, 18:49 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Внимательно посмотрел, почитал про синтаксис приведения типов в C++ увидел - да фигня написана была. Вот так вроде то что надо Код: plaintext 1.
Но это тоже не работает. Что тут не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2019, 19:27 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
то есть это компилируется, функция вызывается и отрабатывает (в ней есть есть логирование), но на этой строке си-шная программа падает, видимо при присвоении результата переменной bstr... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2019, 19:31 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
Значит пришло время выяснить что такое BSTR в Delphi. Я такого типа в 2006-й, например, не вижу. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2019, 19:38 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, В исходнике DLL: Код: pascal 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2019, 19:55 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
Нужно выделять память? Вроде нагуглил про SysAllocString но как его сюда прикрутить? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2019, 19:59 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
SQL-Talker, А зачем приведение результата к BSTR? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2019, 22:28 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2019, 22:37 |
|
[Code::Blocks] ошибки "... was not declared in this scope"
|
|||
---|---|---|---|
#18+
Изопропил, Иными словами, строку нужно возвращать как OUT параметр, а не как результат функции. Так? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2019, 15:56 |
|
|
start [/forum/topic.php?all=1&fid=57&tid=2017599]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 264ms |
total: | 427ms |
0 / 0 |