- HOME
- Post in | c/c++
- Post at | 2012. 11. 16. 11:05 | by 밀크빵.
- View comment
//std::ofstream fout; //추출한 문자열 저장할 텍스트 파일
//fout.open("c:\\Path.txt",std::ios_base::out | std::ios_base::app);
//fout<<"pPath : "<< pPath<<endl;
//fout.close();
오픈 모드를 변경해 주면
파일 이어쓰기가 가능하다
MMF (0) | 2012.11.16 |
---|---|
디버그 창에 출력하기 (0) | 2012.11.16 |
파일 경로 분리 (0) | 2012.11.01 |
한글 깨짐 (0) | 2012.10.31 |
C++ 파일 크기 구하기 (0) | 2012.09.24 |
_splitpath(path,NULL,NULL,fname,ext); // path에서 파일 이름, 확장자 분리
buf.append(fname);
buf.append(ext);
디버그 창에 출력하기 (0) | 2012.11.16 |
---|---|
ofstream 파일 이어쓰기 (0) | 2012.11.02 |
한글 깨짐 (0) | 2012.10.31 |
C++ 파일 크기 구하기 (0) | 2012.09.24 |
MMF(memory mapping file) (0) | 2012.08.16 |
// wchar -> char void WCharToChar(const wchar_t* pwstrSrc, char * pstr) { setlocale(LC_ALL, "korean"); assert(pwstrSrc); #if !defined _DEBUG int len = 0; len = (wcslen(pwstrSrc) + 1)*2; char* pstr = (char*) malloc ( sizeof( char) * len); WideCharToMultiByte( 949, 0, pwstrSrc, -1, pstr, len, NULL, NULL); #else int nLen = wcslen(pwstrSrc); int count = 0; count = wcstombs(pstr, pwstrSrc, nLen+1); // 여기서 와이드에서 멀티 바이트로 변환 #endif } |
std::string ToUTF8Str(const WCHAR *S, const int NumChars) { std::string Result = ""; int BufferLen = NumChars + 1; char* pstr = (char*) malloc ( sizeof( char) * BufferLen + 1); WCharToChar(S, pstr); // 여기서 호출 해서 Result.assign(pstr); // String 으로 변환 해준 후 free(pstr); // 메모리 해제 return Result; } |
만약 wcstombs() 사용하는데 뒤에 부분이 잘린다면
pstr의 크기를 2배로 늘려주면 됨
버퍼 크기 문제였음ㅜㅜ
문자열 짜잉나 !!
UTF-8, UNICODE, ANSI - 인코딩에 대하여 (0) | 2012.12.18 |
---|---|
멀티/유니->utf8, utf8->멀티/유니 (0) | 2012.12.10 |
형변환 주의하기 (0) | 2012.12.10 |
[문자열] 아스키코드, 멀티바이트, 유니코드 (0) | 2012.12.10 |
문자열 처리함수 정리(멀티바이트 -> 유니코드) (0) | 2012.08.06 |
#include <locale.h>
setlocale(LC_ALL, "Korea");
나는 이걸로 안됐지만 ㅜㅜ
나중에 필요할까봐 ㅋㅋ
디버그 창에 출력하기 (0) | 2012.11.16 |
---|---|
ofstream 파일 이어쓰기 (0) | 2012.11.02 |
파일 경로 분리 (0) | 2012.11.01 |
C++ 파일 크기 구하기 (0) | 2012.09.24 |
MMF(memory mapping file) (0) | 2012.08.16 |
error LNK2019: __imp__inet_addr@4 외부 기호(참조 위치: "int __stdcall License(struct HWND__ *,unsigned int,unsigned int,long)" (?License@@YGHPAUHWND__@@IIJ@Z) 함수)에서 확인하지 못했습니다.
라이브러리 추가 안해서 생긴 오류
#pragma comment(lib, "Ws2_32")
추가하여 해결
LNK2019 에러 났을 경우 라이브러리 확인해보기!
* 특히 디버그 했을때는 실행 됐는데,
릴리즈 일때 실행 되지 않았을 경우 릴리즈에서 라이브러리 추가 안됐을 확률이 높다
버그. 에러, 예외 (0) | 2013.01.25 |
---|---|
F5 실행 Ctrl F5 결과 값 차이 발생 (0) | 2012.12.07 |
[SVN] checkout 하기 (0) | 2012.12.04 |
[LNK2001] 외부 기호를 확인할 수 없습니다. (0) | 2012.11.26 |
LINK : fatal error LNK1104: 'libboost_regex-vc100-mt-gd-1_51.lib' 파일을 열 수 없습니다. (0) | 2012.09.28 |
- api에서 값 확인 하고 싶을 때
간편하게 콘솔 창 띄울 수 있는 방법
main위에 추가하기!
- 디버그 모드에서만 콘솔 창이 뜬다.
#ifdef _DEBUG
#pragma comment(linker, "/entry:WinMainCRTStartup /subsystem:console")
#endif
HINSTANCE HWND 차이 (0) | 2012.11.26 |
---|---|
메시지 박스 최상위로 뜨게 (0) | 2012.11.21 |
[API] 여러 가지 출력 - 그래픽 (0) | 2012.08.02 |
[API]OWNERDRAW로 버튼 이미지 바꾸기 (0) | 2012.08.01 |
[API] 슬라이더에서 값 읽어오기 (0) | 2012.07.23 |
라이브러리 경로를 추가 안해줘서 생기는 오류!!
저 위치에 라이브러리 위치 추가하기
버그. 에러, 예외 (0) | 2013.01.25 |
---|---|
F5 실행 Ctrl F5 결과 값 차이 발생 (0) | 2012.12.07 |
[SVN] checkout 하기 (0) | 2012.12.04 |
[LNK2001] 외부 기호를 확인할 수 없습니다. (0) | 2012.11.26 |
[LNK2019] inet_addr 사용 오류 (0) | 2012.10.18 |
- C++에서 만든 dll 함수
extern "C" __declspec(dllexport) char* Suma(char* a, char*b)
{
char* result = (char*)LocalAlloc(LPTR, strlen(a) + strlen(b) +1);
strcat(result, a);
strcat(result, b);
LocalFree(result);
return result;
}
- C#에서 dll함수 적용하기
class Program
{
[DllImport("C:\\DllName.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern System.IntPtr Suma(string a, string b);
static void Main()
{
string a = "a";
string b = "b";
IntPtr p = Suma(a,b);
string c = Marshal.PtrToStringAnsi(p);
Marshal.FreeHGlobal(p);
Console.WriteLine(c);
}
}
C++ 에서는
LocalAlloc을 이용 메모리 할당 해줘야 함
C#에서는
IntPtr 구조체를 선언하여 dll 함수 저장 후
Marshal.PtrToStringAnsi() 메소드 이용하여 관리되는 string, 관리되지 않는 ANSI 문자열 복사
Marshal.FreeHGlobal() 메소드 이용하여 할당한 메모리 해제
출처 - http://blog.naver.com/PostView.nhn?blogId=nickpooh&logNo=50108296076&redirect=Dlog&widgetTypeCall=true
c# 오피스 참조한 프로젝트 배포 시 필요한 dll (0) | 2013.01.07 |
---|---|
c#dll c++에서 사용 (2) | 2013.01.02 |
C# - Excel 내용 읽어오기 (0) | 2012.09.17 |
C# - Excel 창 접근하기 (0) | 2012.09.03 |
C# - 파일 선택 다이얼로그 띄우기 (0) | 2012.08.30 |
파일 크기를 구하기 위한 함수
path는 전체 경로를 포함한 파일 이름
size는 파일 크기 값
int GetFilesize (const wchar_t* path)
{
std::ifstream ifs (path, std::ios::in | std::ios::binary );
int size= 0 ;
if(ifs.is_open()==0)
printf("\n\n파일이 존재하지 않습니다.n\n");
ifs.seekg(0,std::ios::end);
size = ifs.tellg();
//std::istream::pos_type pt = ifs.tellg();
printf("\n\n\n★pt : %d \n\n\n\n",size);
ifs.close();
return size;
}
디버그 창에 출력하기 (0) | 2012.11.16 |
---|---|
ofstream 파일 이어쓰기 (0) | 2012.11.02 |
파일 경로 분리 (0) | 2012.11.01 |
한글 깨짐 (0) | 2012.10.31 |
MMF(memory mapping file) (0) | 2012.08.16 |