|
알에스 님이 쓰신 글 :
: 다음 xxx.cpp 파일을 include하여 사용하면 out of hash space error가 발생합니다
: 도대체 hash space가 뭐고, 어떻게 조치해야 합니까
:
: << xxx.cpp내용 >>
: #include <windows.h>
: #include <string.h>
: #include "xxx.h"
:
: #pragma inline
:
: //NOMANGLE DllExport BYTE __stdcall GetPrnState()
: BYTE __stdcall GetPrnState()
: {
:
: BYTE bRet = 0;
:
: __asm mov ah, 02h
: __asm mov dx, 00
: __asm int 17h
: __asm mov bRet, ah
:
: return bRet;
:
: }
:
: //NOMANGLE DllExport BOOL __stdcall CheckPaper()
: BOOL __stdcall CheckPaper()
: {
:
: BOOL blRes;
: BYTE bPrnState;
:
: bPrnState = GetPrnState();
: if (bPrnState & 0x20) {
: blRes = FALSE;
: } else {
: blRes = TRUE;
: }
:
: return blRes;
:
: }
:
: //NOMANGLE DllExport BYTE __stdcall PrintChar(SHORT sChar)
: BYTE __stdcall PrintChar(SHORT sChar)
: {
:
: //BYTE bChar = sChar & 0x00ff; // original
: BYTE bChar = BYTE(sChar & 0x00ff);
: BYTE bRet;
:
: do {
: __asm mov ah, 02h
: __asm mov dx, 00
: __asm int 17h
: __asm mov bRet, ah
: } while (!(bRet & 0x80));
:
: __asm mov ah, 01h
: __asm mov dx, 00
: __asm int 17h
:
: __asm mov ah, 00h
: __asm mov al, bChar
: __asm mov dx, 00h
: __asm int 17h
: __asm mov bRet, ah
:
: return bRet;
:
: }
:
: //NOMANGLE DllExport long __stdcall PrintString(LPSTR lpszText)
: long __stdcall PrintString(LPSTR lpszText)
: {
:
: long lTextNum;
: long i;
: char chOne;
:
:
: lTextNum = strlen(lpszText);
:
: for (i = 0; i < lTextNum; i++) {
: chOne = lpszText[i];
: PrintChar(chOne);
: }
:
: return lTextNum;
:
: }
:
: << xxx.h 내용>
: #ifndef _xxx_H
: #define _xxx_H
:
: #define NOMANGLE extern "C"
: //#define DllImport __declspec(dllimport)
: #define DllExport __declspec(dllexport)
:
: #endif
:
: -이상입니다-
임펠리테리입니다.
저도 도무지 앞뒤를 못가릴 질문이군요. out of hash space fatal error라는 에러는 저도 본적이 없구요. 아마도 빌더의 컴파일러가 컴파일할 때 구문분석(파싱)할 때 에러가 난 듯합니다.
일단은 .cpp 파일은 헤더파일이 아닌 만큼 #include 해서 사용해서는 곤란하구요. 항상 안되는 것은 아니지만 적어도 보여주신 이 소스는 원작자가 인클루드 해서 사용하기 위해 만든 것이 아니군요. 그리고, 가장 위에 파일이름이 지정되지 않은 빈 #include가 두개나 있는데, 이것은 컴파일에러를 일으킵니다.
그럼 참고하시길...
|