C2248 오류는 stackoverflow에서 새로 추가되지 않습니다. 불행하게도, 난 부스트 라이브러리를 사용하여 초보자 그리고 난 내 코드에서 오류를 수정할 수 없습니다 해요 :다시 오류 C2248
// .h file
using namespace boost::interprocess;
using namespace std;
class CMsqQueueMngr {
public:
// constructors & destructors
CMsqQueueMngr();
~CMsqQueueMngr();
int Open(char *queueName, int mode);
int Close();
int Read(uint8_t *data, int count);
int Write(uint8_t *data, int count, int priority);
boost::interprocess::message_queue mq;
private:
std::string mqName;
};
// .cpp file
CMsqQueueMngr::CMsqQueueMngr()
{} **<=== ERROR C2248**
CMsqQueueMngr::~CMsqQueueMngr()
{}
int CMsqQueueMngr::Open(char *queueName, int mode)
{
try{
//Erase previous message queue
message_queue::remove(queueName);
mqName.assign(queueName);
//Create a message_queue.
mq
(create_only //only create
, queueName //name
, 100 //max message number
, sizeof(int) //max message size
); **<=== ERROR C2064 **
//Send 100 numbers
for (uint8_t i = 0; i < 100; ++i){
mq.send(&i, sizeof(i), 0);
}
}
catch (interprocess_exception &ex){
std::cout << ex.what() << std::endl;
return -1;
}
return 0;
}
컴파일러 오류 :
오류 C2248 : '부스트 :: 간 :: message_queue_t> :: message_queue_t 'class'boost :: 간 :: message_queue_t 선언 private 멤버에 액세스 할 수 없습니다>
오류 C2064 : 항은 함수 복용 평가 4 개 인수
하지 않습니다mq에 액세스하려면 어떻게해야합니까?
좀 더 혼란스러운 오류를 정말로 원하지 않는다면 헤더에서'using namespace' 문을 제거하는 것이 좋습니다. – pmr
컴파일러가 말하는 것을 이해하려면 생성자와 초기화 목록을 자세히 살펴야합니다. 나는 이것을 [대답] (http://stackoverflow.com/a/28276590/2932052)에 집중하려고했다. – Wolf
... 액세스 할 수없는 변수 ** mq **가 아닙니다. – Wolf