8.구조 바꿈/ Sha256 다운받아서 프로젝트에 적용.
1. 구조 바꿈
바뀌기 전 구조는 dll에서 받아온 기능을 랩핑한 class 느낌으로 구조를 짰다.
바뀐 후 구조는 Engine 과 Lib에서 포인터를 받아서 해당 pointer를 통해 접근하게 했다.
이렇게 함으로써 좀 더 깔끔하고 보호 수준을 높이려는 의도와 맞는 것 같았다.
주의점
여기서 주의할 점이 있다.
RokaProj에서 생성된 LM_DLL과 dll 에서 생성된 LM_DLL 은 별개로 취급된다.
추측하기로는 공유 메모리가 아니기 때문인 것 같다.
main proj에서 lib를 통해 생성한 메모리는 .exe 쪽 메모리에 잡히고
dll 내부에서 lib를 통해 생성한 메모리는 dll 쪽 메모리에 잡히기 때문에 별개로 취급된다고 추측한다.
2.Openssl SHA256 적용 및 테스트
다운로드
http://p-nand-q.com/programming/windows/building_openssl_with_visual_studio_2013.html
설정
1. RokaSTL_Lib.lib에 링크를 해놨다.
2.RokaProj에서 호출을 하려면 dll 을 연결해놔야 하므로 아래와 같이 한다.
-(1) 기본적으로 .h 와 lib를 참조하기 위해 기존에 lib,dll 경로를 설정한것처럼 설정해준다.
-(2)디버깅-환경에서 다음과 같이 패스를 입력한다.
path=경로;%PATH%
설정 참고 사이트
https://cypsw.tistory.com/entry/C-openSSL-%EC%82%AC%EC%9A%A9%EB%B2%95
테스트 코드
확인해보기
3. 맵의 종류를 정확히 구분하자.
내가 만든 map으로 해시 값들을 관리하며 검색하려 했다.
이 맵은 odered map 이다.
ordered_map : 값을 비교하며 삽입,삭제,검색을 수행해야 할 경우 vector 보다 빠르다. (시간 복잡도 : logn)
unordered_map : 값을 비교 X 순수하게 빠르게 검색하려고 할때 사용. hash 기반으로 검색해서 빠르다.(시간 복잡도 : O(1))
unordered_map 은 GetHesh 를 재정의 해서 써줘야 하는데 공식은 내가 알아서 고유하게 해서 size_t가 나오게 해야한다.
sha로 해시떠서 비교하는건 용도가 맞지 않았던거 같다.
내가 만든 map을 string 특수화를 시켜주던가
아니면 unordered_map으로 gethesh 함수를 재정의해서 찾도록 하는게 좋을 듯 하다.