Как экспортировать макрос функцию из DLL в другую dll файлы?
У меня есть 3 проекта soultions, внутри main soultion, я должен использовать свой файл dll logger другой dll, как экспортировать этот файл в другую dll?пожалуйста, помогите мне.
Проект
---------------
Simple_logger.ч
#pragma once #include<crtdefs.h> #include<boost/log/expressions.hpp> #include<boost/log/expressions/formatters/named_scope.hpp> #include<boost/log/sources/global_logger_storage.hpp> #include<boost/log/support/date_time.hpp> #include<boost/log/trivial.hpp> #include<boost/log/utility/setup.hpp> #include<string.h> #include"Binary_Export.h" #include <boost/log/sinks/debug_output_backend.hpp> #define FILE (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__) #define INFO BOOST_LOG_SEV(my_logger::get(), boost::log::trivial::info) << "|" << FILE<< "| " <<" "<<"|"<< __LINE__ << "| "<<__FUNCSIG__ #define WARN BOOST_LOG_SEV(my_logger::get(), boost::log::trivial::warning) << "|" << FILE<< "| " <<" "<<"|"<< __LINE__ << "| "<<__FUNCSIG__ #define ERROR BOOST_LOG_SEV(my_logger::get(), boost::log::trivial::error) << "|" << FILE<< "| " <<" "<<"|"<< __LINE__ << "| "<<__FUNCSIG__ #define SYS_LOGFILE "C:\\Users\\janardhanreddyn\\Documents\\LogFile\\Logfile.log" //Narrow-char thread-safe logger. typedef boost::log::sources::severity_logger_mt<boost::log::trivial::severity_level> logger_t; //declares a global logger with a custom initialization BOOST_LOG_GLOBAL_LOGGER(my_logger, logger_t)
Просто Logger.cpp
--------------------
#include"Simple_Logger.h" namespace logging = boost::log; namespace sinks = boost::log::sinks; namespace src = boost::log::sources; namespace expr = boost::log::expressions; namespace attrs = boost::log::attributes; namespace keywords = boost::log::keywords; //Defines a global logger initialization routine BOOST_LOG_GLOBAL_LOGGER_INIT(my_logger, logger_t) { logger_t lg; logging::add_common_attributes(); logging::add_file_log( keywords::file_name = SYS_LOGFILE, keywords::rotation_size = 1024 * 1024 * 20, // megabytes keywords::time_based_rotation = boost::log::sinks::file::rotation_at_time_point (0, 0, 0), keywords::auto_flush = true, keywords::format = ( expr::stream<<expr::format_date_time <boost::posix_time::ptime> ("TimeStamp", "%d-%m-%y %H:%M:%S") << " [" << expr::attr <boost::log::trivial::severity_level> ("Severity") << "]: " << expr::smessage ) ); logging::add_console_log( std::cout, keywords::format = ( expr::stream <<"|"<< expr::format_date_time <boost::posix_time::ptime> ("TimeStamp", "%d-%m-%y %H:%M:%S")<<"|" << " [" << expr::attr <boost::log::trivial::severity_level> ("Severity") << "]: " << expr::smessage ) ); logging::core::get()->set_filter ( logging::trivial::severity >= logging::trivial::info ); return lg; }
Что я уже пробовал:
еще один проект Б
----------------------
Фабрика.ч
=============
#pragma once #include"tfexports.h" #include"Simple_Logger.h" #include<iostream> class TF_API AFactory { public: AFactory(); ~AFactory(); virtual void Func(); };
factory.cpp
==============
#include"Factory.h" AFactory::AFactory() { INFO<<"AFactory Constructor"; } AFactory::~AFactory() { } void AFactory::Func() { <pre>INFO<<"AFactory Constructor";
}
когда я использовал INFO, только. DLL файл сгенерирован,. lib файл не сгенерирован, для генерации. lib файла мне нужно экспортировать некоторые макросы в другую dll, но я не знаю, как это сделать.
Richard MacCutchan
Вы не можете экспортировать макросы, они преобразуются препроцессором C/C++.
janardhan2104
Спасибо, Ричард.