这个C++Dll文件结口怎么在DELPHI中调用???????
如题:接口如下:
#ifndef _UDT_H_
#define _UDT_H_
#ifndef WIN32
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#else
#include <windows.h>
#endif
#include <fstream>
#include <set>
#include <string>
////////////////////////////////////////////////////////////////////////////////
#ifdef WIN32
// Explicitly define 32-bit and 64-bit numbers
typedef __int32 int32_t;
typedef __int64 int64_t;
typedef unsigned __int32 uint32_t;
#if _MSC_VER > = 1300
typedef unsigned __int64 uint64_t;
#else
// VC 6.0 does not support unsigned __int64: may bring potential problems.
typedef __int64 uint64_t;
#endif
#ifdef UDT_EXPORTS
#define UDT_API __declspec(dllexport)
#else
#define UDT_API __declspec(dllimport)
#endif
#else
#define UDT_API
#endif
#define NO_BUSY_WAITING
typedef int UDTSOCKET;
typedef std::set <UDTSOCKET> ud_set;
#define UD_CLR(u, uset) ((uset)-> erase(u))
#define UD_ISSET(u, uset) ((uset)-> find(u) != (uset)-> end())
#define UD_SET(u, uset) ((uset)-> insert(u))
#define UD_ZERO(uset) ((uset)-> clear())
////////////////////////////////////////////////////////////////////////////////
enum UDTOpt
{
UDT_MSS, // the Maximum Transfer Unit
UDT_SNDSYN, // if sending is blocking
UDT_RCVSYN, // if receiving is blocking
UDT_CC, // custom congestion control algorithm
UDT_FC, // Flight flag size (window size)
UDT_SNDBUF, // maximum buffer in sending queue
UDT_RCVBUF, // UDT receiving buffer size
UDT_LINGER, // waiting for unsent data when closing
UDP_SNDBUF, // UDP sending buffer size
UDP_RCVBUF, // UDP receiving buffer size
UDT_MAXMSG, // maximum datagram message size
UDT_MSGTTL, // time-to-live of a datagram message
UDT_RENDEZVOUS, // rendezvous connection mode
UDT_SNDTIMEO, // send() timeout
UDT_RCVTIMEO, // recv() timeout
UDT_REUSEADDR // reuse an existing port or create a new one
};
////////////////////////////////////////////////////////////////////////////////
struct CPerfMon
{
// global measurements
int64_t msTimeStamp; // time since the UDT entity is started, in milliseconds
int64_t pktSentTotal; // total number of sent data packets, including retransmissions
int64_t pktRecvTotal; // total number of received packets
int pktSndLossTotal; // total number of lost packets (sender side)
int pktRcvLossTotal; // total number of lost packets (receiver side)
int pktRetransTotal; // total number of retransmitted packets
int pktSentACKTotal; // total number of sent ACK packets
int pktRecvACKTotal; // total number of received ACK packets
int pktSentNAKTotal; // total number of sent NAK packets
int pktRecvNAKTotal; // total number of received NAK packets
// local measurements
int64_t pktSent; // number of sent data packets, including retransmissions
int64_t pktRecv; // number of received packets
int pktSndLoss; // number of lost packets (sender side)
int pktRcvLoss; // number of lost packets (receiverer side)
int pktRetrans; // number of retransmitted packets
int pktSentACK; // number of sent ACK packets
int pktRecvACK; // number of received ACK packets
int pktSentNAK; // number of sent NAK packets
int pktRecvNAK; // number of received NAK packets
double mbpsSendRate; // sending rate in Mb/s
double mbpsRecvRate; // receiving rate in Mb/s
// instant measurements
double usPktSndPeriod; // packet sending period, in
#ifndef _UDT_H_
#define _UDT_H_
#ifndef WIN32
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#else
#include <windows.h>
#endif
#include <fstream>
#include <set>
#include <string>
////////////////////////////////////////////////////////////////////////////////
#ifdef WIN32
// Explicitly define 32-bit and 64-bit numbers
typedef __int32 int32_t;
typedef __int64 int64_t;
typedef unsigned __int32 uint32_t;
#if _MSC_VER > = 1300
typedef unsigned __int64 uint64_t;
#else
// VC 6.0 does not support unsigned __int64: may bring potential problems.
typedef __int64 uint64_t;
#endif
#ifdef UDT_EXPORTS
#define UDT_API __declspec(dllexport)
#else
#define UDT_API __declspec(dllimport)
#endif
#else
#define UDT_API
#endif
#define NO_BUSY_WAITING
typedef int UDTSOCKET;
typedef std::set <UDTSOCKET> ud_set;
#define UD_CLR(u, uset) ((uset)-> erase(u))
#define UD_ISSET(u, uset) ((uset)-> find(u) != (uset)-> end())
#define UD_SET(u, uset) ((uset)-> insert(u))
#define UD_ZERO(uset) ((uset)-> clear())
////////////////////////////////////////////////////////////////////////////////
enum UDTOpt
{
UDT_MSS, // the Maximum Transfer Unit
UDT_SNDSYN, // if sending is blocking
UDT_RCVSYN, // if receiving is blocking
UDT_CC, // custom congestion control algorithm
UDT_FC, // Flight flag size (window size)
UDT_SNDBUF, // maximum buffer in sending queue
UDT_RCVBUF, // UDT receiving buffer size
UDT_LINGER, // waiting for unsent data when closing
UDP_SNDBUF, // UDP sending buffer size
UDP_RCVBUF, // UDP receiving buffer size
UDT_MAXMSG, // maximum datagram message size
UDT_MSGTTL, // time-to-live of a datagram message
UDT_RENDEZVOUS, // rendezvous connection mode
UDT_SNDTIMEO, // send() timeout
UDT_RCVTIMEO, // recv() timeout
UDT_REUSEADDR // reuse an existing port or create a new one
};
////////////////////////////////////////////////////////////////////////////////
struct CPerfMon
{
// global measurements
int64_t msTimeStamp; // time since the UDT entity is started, in milliseconds
int64_t pktSentTotal; // total number of sent data packets, including retransmissions
int64_t pktRecvTotal; // total number of received packets
int pktSndLossTotal; // total number of lost packets (sender side)
int pktRcvLossTotal; // total number of lost packets (receiver side)
int pktRetransTotal; // total number of retransmitted packets
int pktSentACKTotal; // total number of sent ACK packets
int pktRecvACKTotal; // total number of received ACK packets
int pktSentNAKTotal; // total number of sent NAK packets
int pktRecvNAKTotal; // total number of received NAK packets
// local measurements
int64_t pktSent; // number of sent data packets, including retransmissions
int64_t pktRecv; // number of received packets
int pktSndLoss; // number of lost packets (sender side)
int pktRcvLoss; // number of lost packets (receiverer side)
int pktRetrans; // number of retransmitted packets
int pktSentACK; // number of sent ACK packets
int pktRecvACK; // number of received ACK packets
int pktSentNAK; // number of sent NAK packets
int pktRecvNAK; // number of received NAK packets
double mbpsSendRate; // sending rate in Mb/s
double mbpsRecvRate; // receiving rate in Mb/s
// instant measurements
double usPktSndPeriod; // packet sending period, in
...全文
相关推荐
Delphi调用c++ DLL技术文档
本文档说明了Delphi调用c++ dll的一些技术细节,讲述了如何调用c++的动态链接库接口技术
Delphi XE 调用 C++ Builder XE 开发的DLL库
【首先用C++ Builder XE 制作DLL】 步骤1:File→New→Other→C++ Builder Project→Dynamic link Library,新建一个DLL工程。保存默认文件名File1.c为DllEntry.c,保存工程文件名为myDLL.cbproj。 步骤2:File→New→Unit - C++Builder,新建一个C文件,保存为UMyDll.c。
使用Delphi调用C++编写的DLL
1、C++编写的DLL代码如下:该Dll的功能比较简单,就是实现一个整数加法;IAddBase 是一个抽象类,IAdd实现了IAddBase的方法,并采用了单例模式;GetAddInstance()为dll对外的接口,返回一个IAdd的对象指针;调用者使用该实例就可以调用Add方法class IAddBase{public: int virtual __
Delphi 几种常见的Dll调用方法l
Delphi7 调用DLL几种常见的方法源码。
VC的DLL类导出后,用Delphi调用方法及源码
在VC中的DLL类导出以后完全是可以被delphi调用的.源码中有详细介绍和说明文档.


网络通信/分布式开发
