개발 환경
다각형 연산 도구 General Polygon Clipper : version 2.32, 2014
컴파일러 : Visual Studio 2019
Visual Studio Project 속성 설정하기
fscanf와 같은 함수는 보안에 문제가 있다는 경고를 띄운다. 이를 없애기 위해서 _CRT_SECURE_NO_WARNINGS를 ‘전처리기’에 추가하였다. 자세한 설명은 아래에 있다.
gpc.c가 그냥 C언어로 되어 있기에 “미리 컴파일된 헤더”를 사용하지 않았다. 그래서 아래와 같이 설정하였다. “pch.h”를 삭제한다.
Preprocessor – GPC64_EXPORTS
gpc.h에 #define을 정리하다
# ifdef GPC64_EXPORTS
# define GPCLIBRARY_API __declspec ( dllexport )
# else
# define GPCLIBRARY_API __declspec ( dllimport )
# endif
전처리기(preprocessor)에 “GPC64_EXPORTS”를 안 하면, error c2491 가 발생한다. 주의해야 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
GPCLIBRARY_API void gpc_read_polygon ( FILE * infile_ptr ,
int read_hole_flags ,
gpc_polygon * polygon ) ;
GPCLIBRARY_API void gpc_write_polygon ( FILE * outfile_ptr ,
int write_hole_flags ,
gpc_polygon * polygon ) ;
void gpc_add_contour ( gpc_polygon * polygon ,
gpc_vertex_list * contour ,
int hole ) ;
GPCLIBRARY_API void gpc_polygon_clip ( gpc_op set_operation ,
gpc_polygon * subject_polygon ,
gpc_polygon * clip_polygon ,
gpc_polygon * result_polygon ) ;
GPCLIBRARY_API void gpc_tristrip_clip ( gpc_op set_operation ,
gpc_polygon * subject_polygon ,
gpc_polygon * clip_polygon ,
gpc_tristrip * result_tristrip ) ;
GPCLIBRARY_API void gpc_polygon_to_tristrip ( gpc_polygon * polygon ,
gpc_tristrip * tristrip ) ;
GPCLIBRARY_API void gpc_free_polygon ( gpc_polygon * polygon ) ;
GPCLIBRARY_API void gpc_free_tristrip ( gpc_tristrip * tristrip ) ;
Preprocessor : _CRT_SECURE_NO_WARNINGS
fscanf 와 같은 함수들이 보안 관련 경고를 발생시킨다. 이를 방지하고자 이 옵션을 걸었다.
참고 : Remove secure warnings
미리 컴파일된 헤더 Precompiled Header
이전에 개발된 gpc(gpc.c, gpc.h)가 현재 개발 환경에 맞지 않아서, 미리 컴파일된 헤더는 사용하지 않았다. 사용하면 에러가 많이 뜬다.
컴파일하는 과정에서 생겼던 오류와 검색 내용들
DLL 만들기 32비트/64비트
기존의 vbwrapper.sln을 이용했더니, 아무리 설정을 바꾸어도 에러가 발생하였다. 새로 DLL 프로젝트를 만든 다음, gpc.h와 gpc.c를 추가하고 위와 같이 컴파일 옵션을 설정하니, 제대로 만들어졌다.
프로젝트 설정 화면(pdf)
교훈
때로는 새로 시작하는 것이 나을 때가 있다. 오래된 비주얼 스튜디오 파일을 쓰기보다 새로 만들어서 쓰자.
You must be logged in to post a comment.