안녕하세요...c++소스를 델파이로 변환하려고 하는데요
다음의 다섯가지의 경우에 어떻게 해야할지 몰라서요.
한가지라도 아시면 메일을 보내주세요.
감사합니다.
1. typedef struct db_value_list {
struct db_value_list *next;
DB_VALUE val;
} DB_VALUE_LIST;
2. typedef struct db_elo DB_ELO;
3. typedef void* DB_POINTER;
typedef const char* DB_STRING;
// void형 파라메터의 처리....
4. extern DB_ERROR EXPORT_P db_value_put (DB_VALUE *value,
DB_TYPE_C type,
void *input,
DB_INT32 length);
// 델파이에서 #ifdef 나 #endif 를 사용하려면 어떻게 해야하는지..
5. typedef struct db_value {
DB_DOMAIN_INFO domain;
DB_MMGR *mmgr;
#ifdef PC
DB_INT32 pc_pad;
#endif
DB_DATA data;
} DB_VALUE;
6. #ifdef NOERROR
#undef NOERROR
#endif
#define NOERROR 0
> 안녕하세요...c++소스를 델파이로 변환하려고 하는데요
> 다음의 다섯가지의 경우에 어떻게 해야할지 몰라서요.
> 한가지라도 아시면 메일을 보내주세요.
> 감사합니다.
>
> 1. typedef struct db_value_list {
> struct db_value_list *next;
> DB_VALUE val;
> } DB_VALUE_LIST;
>
나희정님 안녕하세요?
위의 코드의 레코드 선언은 델파이에서는 record 라는 예약어를 씁니다.
포인터로 선언된 레코드는 '^' 표현으로 쓸수 있습니다.
얼핏 보아서는 링크드 리스트를 구현하는 소스일거 같은데..
에궁.. 많이 힘드실거 같네요..
델파이 관련서적 어떤것을 보셔도 레코드에 대한
내용은 다루고 있으니 참조하세요.
아래 2번도 마찬가지 경우네요.
> 2. typedef struct db_elo DB_ELO;
>
>
> 3. typedef void* DB_POINTER;
> typedef const char* DB_STRING;
const로 '=' 을 이용해 선언하셔도 되구 아니면 바로
Pointer 형과 PChar 형을 이용하셔도 됩니다.
> // void형 파라메터의 처리....
> 4. extern DB_ERROR EXPORT_P db_value_put (DB_VALUE *value,
> DB_TYPE_C type,
> void *input,
> DB_INT32 length);
>
> // 델파이에서 #ifdef 나 #endif 를 사용하려면 어떻게 해야하는지..
델파이에서는 인자로 전해져오는
변수명 앞에 var 를 붙여 주시면 Call By Reference 가 됩니다.
> 5. typedef struct db_value {
> DB_DOMAIN_INFO domain;
> DB_MMGR *mmgr;
> #ifdef PC
> DB_INT32 pc_pad;
> #endif
> DB_DATA data;
> } DB_VALUE;
>
> 6. #ifdef NOERROR
> #undef NOERROR
> #endif
> #define NOERROR 0
>
마지막 문장은 잘 모르겠습니다.
{$ifdef }
....
{$endif}
이런 형식으로 사용되는 걸로 알고 있습니다.
일전에 델파이 코리아의 질답란에서 관련내용을 본것 같습니다.
한번 검색해 보시기 바랍니다.
그럼.. 즐거운 프로그래밍 되세요~