본문 바로가기

Visual C++

.h파일 include하는 올바른 방법 서로 클래스가 물고 물리는 경우 어떻게 include를 해야 syntax에러가 안나올 수 있을까? stdafx.h에 모든 header file을 include한다고 했을 때, 윗쪽에 선언된 클래스는 아랫쪽에 선언된 클래스를 알지 못한다. 그래서 일단 #include하는 순서가 중요하다. 하지만 클래스가 서로를 물고 물리는 recursive형태를 가지게 되면 #include가 중복으로 되든지 아니면 #pragma once에 의해 #include를 해도 어느쪽에서는 무시되어 여전히 서로를 알아보지 못한다. 유일한 방법은 class a;를 header파일 윗쪽에 써주는 것이다. 구체적으로 class A, B, C가 있다고 생각해보자. A는 B* b, C* c 를 멤버변수로 갖는다. B는 A* a를 멤버변수로 .. 더보기
Rabbitmq-c 와 CURL 라이브러리 사용법 Rabbitmq-c와 Curl 모두 SSL(TLS)연결 시 openssl라이브러리를 사용하는데 서로 다른 버전의 라이브러리를 사용하도록 .lib를 빌드하면 amqp socket만들 때 에러가 발생한다. 꼭 두개의 버전을 맞춰야 함에 유의하자. OpenSSL라이브러리 설치 라이브러리 다운로드: Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions 라이브러리는 Win32 OpenSSL v1.1.1d를 설치하자. .exe파일을 다운받아 실행하면 설치파일이 실행된다. 설치파일 실행 도중 OpenSSL DLL을 어디에 위치시킬지 경로를 물어보는데 이 경로에 'libcrypto-1_1.dll', 'libssl-1_1.dll.. 더보기