Anonymní profil vesi – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil vesi – Programujte.comAnonymní profil vesi – Programujte.com

 

Příspěvky odeslané z IP adresy 94.113.246.–

.NET › Zastavení kódu při změně pro…
9. 1. 2017   #214428

#2 Ovrscout
Díky za odpověď a za radu. Udělat z proměnné property a breaknout to na ni mě nenapadla, ale funguje to dobře :)

.NET › Zastavení kódu při změně pro…
6. 1. 2017   #214396

Zdravím všechny,

potřeboval bych breaknout kód pokud se mě změní proměnná, tzn. ne na určitém řádku, ale na řádku který změnu vyvolal. Snažil jsem se vytvořit Breakpoint pomocí Conditional Expression -> When changed -> název proměnné, ale prostě se mě to nikdy nezastaví i když jsem si jistý, že se hodnota x-krát změnila. Díky za rady :)

C / C++ › Úprava kódu
19. 5. 2015   #202233

Kompiluju to pod VS2010 SP1. Upravil jsem to podle tebe, ale pořád mi to řve na řádku 

static XLLCellLogger pl; 

Error	2	error C2259: 'Palo::XLL::XLLCellLogger' : cannot instantiate abstract class	d:\develop\xladdin\libraries514\paloxll\XLLCellLogger.h	52

a pak na řádku 

XLLCellLogger::getInstance().log( AbstractLogger::LOG_WARNING, "Unexpected exception caught! (This should never happen)." ); 

Error	5	error C2664: 'void Palo::XLL::XLLCellLogger::log(Palo::SpreadsheetFuncs::AbstractLogger::Type,std::string &) throw()' : cannot convert parameter 2 from 'std::string *' to 'std::string &'	D:\Develop\XlAddin\libraries514\PaloXLL\SpreadsheetFuncsWrapper.cpp	129
	6	IntelliSense: no instance of overloaded function "Palo::XLL::XLLCellLogger::log" matches the argument list	d:\develop\xladdin\libraries514\paloxll\spreadsheetfuncswrapper.cpp	128

Tady mě je jasné, že je problém s tím, že se předává string nikoliv reference na string, ale nevím jak to přepsat.

Ještě jednou se omlouvám, je mi jasné, že to co tu řeším jsou asi základy, ale já C++ naposledy viděl asi před 15 lety na vejšce, tak díky za trpělivost :)

vesi
C / C++ › Úprava kódu
19. 5. 2015   #202230

Takže jestli to chápu dobře, tak jediná možnost pro mě je, vrátit zpět v AbstractLogger parametr const std::string &msg na const std::string msg, jak to bylo původně. To sice funguje, ale chtěl jsem se tomu vyhnout, protože AbstractLogger je součástí open source řešení, které je aktualizováno a já to budu muset při každé aktualizaci upravovat ve zdrojovém kódu...

vesi
C / C++ › Úprava kódu
19. 5. 2015   #202228

Díky za komentáře.

Upravil jsem kód následovně 

namespace Palo {
	namespace XLL {
		class XLLCellLogger : public Palo::SpreadsheetFuncs::AbstractLogger {
		public:
			XLLCellLogger();
			~XLLCellLogger();

			static XLLCellLogger& getInstance() {
				static XLLCellLogger pl;
				return pl;
			}
			void log( Type t, std::string& msg ) throw();
			void log( Type t, std::string& msg, bool force_logging ) throw();

		private:
			std::ofstream m_log;
		};
	}
}

protože potřebuji i variantu s 3 parametrem, která se používá dál v kódu. 

Ale bohužel mě to vyhází nasledující chyby

Error	1	error C2259: 'Palo::XLL::XLLCellLogger' : cannot instantiate abstract class	d:\develop\xladdin\libraries514\paloxll\XLLCellLogger.h	52
Error	2	error C2664: 'void Palo::XLL::XLLCellLogger::log(Palo::SpreadsheetFuncs::AbstractLogger::Type,std::string &,bool) throw()' : cannot convert parameter 2 from 'const char *' to 'std::string &'	D:\Develop\XlAddin\libraries514\PaloXLL\c2c_plus_plus.cpp	40
Error	3	error C2259: 'Palo::XLL::XLLCellLogger' : cannot instantiate abstract class	d:\develop\xladdin\libraries514\paloxll\XLLCellLogger.h	52
Error	4	error C2259: 'Palo::XLL::XLLCellLogger' : cannot instantiate abstract class	d:\develop\xladdin\libraries514\paloxll\XLLCellLogger.h	52
Error	5	error C2511: 'void Palo::XLL::XLLCellLogger::log(Palo::SpreadsheetFuncs::AbstractLogger::Type,std::string,bool) throw()' : overloaded member function not found in 'Palo::XLL::XLLCellLogger'	D:\Develop\XlAddin\libraries514\PaloXLL\XLLCellLogger.cpp	68
Error	6	error C2259: 'Palo::XLL::XLLCellLogger' : cannot instantiate abstract class	d:\develop\xladdin\libraries514\paloxll\XLLCellLogger.h	52
Error	7	error C2664: 'void Palo::XLL::XLLCellLogger::log(Palo::SpreadsheetFuncs::AbstractLogger::Type,std::string &) throw()' : cannot convert parameter 2 from 'const char [57]' to 'std::string &'	D:\Develop\XlAddin\libraries514\PaloXLL\SpreadsheetFuncsWrapper.cpp	128
vesi
C / C++ › Úprava kódu
19. 5. 2015   #202223

#2 ondrej39
Díky za odpověď. Já bohužel nemůžu měnit kód v AbstractLogger, protože je v jiné knihovně, jehož kód já nemám pod "kontrolou". Takže potřebuji upravit XLLCellLogger, tak aby fungoval se změnou const std::string &msg. Jak jsem psal nahoře, programuju v C#, ale C++ je pro mě španělská vesnice... :(

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032019 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý