MS VS 2008 C++
Надо сделать shared global variable between DLL and EXE.
Сделал всё по инструкции
В DLL __declspec( dllexport ) int xyz = 123;
В EXE __declspec( dllimport ) int xyz;
В EXE
- wsprintf видит xyz с value 123
- Debugger не видит, говорит CXX0017: Error: symbol "xyz" not found
Почему?
Настройки Debugger или какой-то принцип/теория ?
Как же дебагить, если дебагер не видит?
Спасибо кто ответит.
dllexport / dllimport
-
- Уже с Приветом
- Posts: 166
- Joined: 13 Oct 2003 20:11
- Location: Canada
-
- Уже с Приветом
- Posts: 26871
- Joined: 29 Aug 2000 09:01
Re: dllexport / dllimport
Дебагер не видит потому что код оптимизирован? Тогда отключить оптимизацию.
All rights reserved, all wrongs revenged.
-
- Уже с Приветом
- Posts: 166
- Joined: 13 Oct 2003 20:11
- Location: Canada
-
- Уже с Приветом
- Posts: 63430
- Joined: 03 Nov 2004 05:31
- Location: RU -> Toronto, ON
Re: dllexport / dllimport
А распечатать symbol table никак?
Not everyone believes what I believe but my beliefs do not require them to.
-
- Уже с Приветом
- Posts: 3000
- Joined: 14 Apr 2004 01:11
- Location: SFBA (было: Минск, Беларусь)
Re: dllexport / dllimport
В окнах отладки следует обращаться к импортированным именам так
или
Неудобно, но без этого действительно не работает.
https://docs.microsoft.com/en-us/visual ... erator-cpp
Code: Select all
{,,mydll.dll} xyz
Code: Select all
mydll.dll! xyz
https://docs.microsoft.com/en-us/visual ... erator-cpp
Best regards,
Андрей
Андрей
-
- Уже с Приветом
- Posts: 7723
- Joined: 29 Mar 2000 10:01
- Location: Kirkland,WA
Re: dllexport / dllimport
А как вы смотрите в дебаггере? Yourdll!xyzDon Cherry wrote: ↑13 Jul 2018 02:02 MS VS 2008 C++
Надо сделать shared global variable between DLL and EXE.
Сделал всё по инструкции
В DLL __declspec( dllexport ) int xyz = 123;
В EXE __declspec( dllimport ) int xyz;
В EXE
- wsprintf видит xyz с value 123
- Debugger не видит, говорит CXX0017: Error: symbol "xyz" not found
Почему?
Настройки Debugger или какой-то принцип/теория ?
Как же дебагить, если дебагер не видит?
Спасибо кто ответит.