Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Пытаюсь скомпилить dll (builder 6) / 2 сообщений из 2, страница 1 из 1
23.12.2005, 21:34
    #33455415
Leha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пытаюсь скомпилить dll (builder 6)
Приветсвую всех!

как подсказали создать dll, так и делаю:
File > New > Other..." и там "DLL Wizard"

получилось так:
tcpdll.h
Код: plaintext
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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
//---------------------------------------------------------------------------
#ifndef tcpH
#define tcpH
//---------------------------------------------------------------------------
typedef struct{
    unsigned short  srcport;
    unsigned short  destport;
    unsigned int    seq;
    unsigned int    acn;

    unsigned char   data_off;
    unsigned char   cbits;

    unsigned short  win;
    unsigned short  cksum;
    unsigned short  upointer;
}   TCP_HDR, *LPTCP_HDR;

typedef struct{
    unsigned int    destaddr;
    unsigned int    srcaddr;
    char            zero;
    char            ptcl;
    unsigned short  tcplen;
}   TCP_PS, *LPTCP_PS;

#define TCP_URG  0 
#define TCP_ACK  2 
#define TCP_PSH  4 
#define TCP_RST  8 
#define TCP_SYN  16 
#define TCP_FYN  32 


#define MIP_TOS      2 
#define MIP_ID       4 
#define MIP_TTL      8 
#define MIP_PTCL     16 
#define MIP_SRC      32 
#define MIP_DEST     64 

#define MTCP_SRC     2 
#define MTCP_DEST    4 
#define MTCP_SEQ     8 
#define MTCP_ACN     16 
#define MTCP_CBITS   32 
#define MTCP_WIN     64 
#define MTCP_UPTR    128 

unsigned short makecksum(char *buf,
                         int len);

extern "C" unsigned short __export maketcps(LPTCP_HDR tcph,
               char flags,
               u_long srcaddr,
               u_long destaddr,
               char* data,
               u_int datalen);
#endif



а tcpdll.cpp:
Код: plaintext
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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
//---------------------------------------------------------------------------

#include <windows.h>
#include <winsock.h>
#include "tcpdll.h"

#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
        return  1 ;
}
//---------------------------------------------------------------------------

unsigned short makecksum(char *buf, int len){
    int cksum= 0 ;
    unsigned short *p = (unsigned short*) buf;

    while (len> 1 ){
        cksum+=(*p++);
        len-= 2 ;
    }

    if(len== 1 ) cksum+=(*(char*)p);


    cksum = (cksum>> 16 )+(cksum&0xFFFF);
    cksum+=(cksum>> 16 );
    return (unsigned short) (~cksum);
}

extern "C" unsigned short __export maketcps(LPTCP_HDR tcph,
               char flags,
               u_long srcaddr,
               u_long destaddr,
               char* data,
               u_int datalen)
{
   char* tcppac = (char*) malloc(sizeof(TCP_PS)+sizeof(TCP_HDR)+datalen);
   LPTCP_PS  tcpps  = (LPTCP_PS)   tcppac;
   LPTCP_HDR tcphdr = (LPTCP_HDR) (tcppac+sizeof(TCP_PS));
   tcphdr->srcport     = tcph->srcport;
   tcphdr->destport    = tcph->destport;
   tcphdr->seq         = tcph->seq;
   tcphdr->acn         = tcph->acn;
   tcphdr->data_off    = tcph->data_off;
   tcphdr->cbits       = tcph->cbits;
   tcphdr->win         = tcph->win;
   tcphdr->cksum       =  0 ;
   tcphdr->upointer    = tcph->upointer;
   tcpps->destaddr     = destaddr;
   tcpps->srcaddr      = srcaddr;
   tcpps->zero         =  0 ;
   tcpps->ptcl         = 0x06; //TCP
   tcpps->tcplen       = sizeof(TCP_HDR)+datalen;  //??? htons ???
   memcpy(tcppac+sizeof(TCP_PS)+sizeof(TCP_HDR),data,datalen);
   free(tcppac);

   return makecksum(tcppac,sizeof(TCP_PS)+sizeof(TCP_HDR)+datalen);
} 

но он мне компилит только OBJ, может я чего-то недоделал?

Заранее благодарен за ответ.
--
С уважением Алексей
...
Рейтинг: 0 / 0
23.12.2005, 21:49
    #33455431
SnowMan2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пытаюсь скомпилить dll (builder 6)
Жми Project / Build All Project
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Пытаюсь скомпилить dll (builder 6) / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]