DLL 내용은 이렇거든
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #pragma once #ifdef BOXMESSAGE_EXPORT #define BOXMESSAGE_API __declspec(dllexport) #else #define BOXMESSAGE_API __declspec(dllimport) #endif #include <conio.h> #include <cstring> #include <cstdio> namespace BoxMessage { void BOXMESSAGE_API BoxMessage(char* str); void BOXMESSAGE_API MakeOutline(char ch, int size); } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include "BoxMessage.h" void BoxMessage::BoxMessage(char* str) { int len = strlen(str); MakeOutline('-', len+4); printf("l %s l\n", str); MakeOutline('-', len+4); } void BoxMessage::MakeOutline(char ch, int size) { for (int i = 0; i < size; i++) putch(ch); putch('\n'); } | cs |
이렇게 깨져요
한글이 깨지는건 인코딩 문제려나? cp949방식에서 dll을 쓰면 안되나?
char* 말고 wchar_t* 쓰고, {%c, %s, %[..], %[^..]}들을 {%lc, %ls, %l[..], %l[^..]}로 바꿔라
뉴비동강대컴공/이새끼가 사람 낚시하냐
ddz wchar로 해보겠뜸
아. wchar_t 안되면 short 써라. 똑같은 크기임
그리고 "어쩌고"처럼 출력하려면 L"어쩌고"로 써야한다
뉴비동강대컴공/맞음
아. 내가 틀렷네. wchar_t* 쓰는건 맞음
일단 setlocale 같은거 찾아보셈
whcar이랑 다 해봤는데 안되더라. 와이드 스트링 관련 헤더랑 함수들 찾아서 다써보기도 했는 데.
그래서 화끈하게 프로젝트 터뜨리고 다시 만들어서 처음 만들었던 char* 로 가서 하니까 다시 되더라
아무튼, 댓글 ㄳㄳ