如题!
解决方案 »
- 关于c#与数据库连接问题
- (求助)如何查看CCTV网站可下载视频节目的网址。。。。
- 100分请教一个设计问题?路过的都进来看看,谢谢!
- 菜~ % 求问
- 能不能用C#在visual studio 2003 中编写一段程序,在某一个时间发出声音???
- 求教:DBF文件是用Delphi写的,用C#打开后,其中的中文全部变为(似日文),而Excel打开却没有问题,何解?
- sql xml 删除节点的问题
- 熟悉Microsoft Office Picture Manager开发的朋友进来!
- 关于组建网站的愿望
- 关于DataGrid的问题
- TCPClient传送Bitmap的问题
- 请教winform下的分页实现
public static extern int CSGP_ReadConf(string filename);
[DllImport("CSGPAPI_DLL.dll")]
public static extern int ReadSrvReq(StringBuilder ctrlMsg, StringBuilder subCode, StringBuilder contentMsg, ref int msgLen, int timeOut);
DllImport("CSGPAPI_DLL.dll")]
public static extern int SendSrvResp(StringBuilder ctrlMsg, StringBuilder contentMsg, int MsgLen);
方式但类 标准 C/C++ 的类不行如果是 托管的 VC.net 类直接饮用 dll 即可
就和C# 引用自己的dll 一样
C#是没法引用的,该怎么办呢?
郁闷,早知道写成com了。
还有,谁能看出下面代码的错误吗?
extern "C" int PASCAL EXPORT GetTcpInfo(PDWORD dwIStream,
PDWORD dwOStream,
PDWORD dwConnNum)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
// TCP 连接数
MIB_TCPSTATS tcpstat;
MIB_TCPTABLE tcptable;
DWORD tcpTemp_size=0; long ret_value = -1;
MIB_IPADDRTABLE ipAddress; CString str1 ;
in_addr add; memset(&tcpstat,0,sizeof(tcpstat));
memset(&tcptable,0,sizeof(tcptable));
memset(&ipAddress,0,sizeof(ipAddress)); // Get ipAddress
ret_value = GetIpAddrTable(&ipAddress,&tcpTemp_size,TRUE);
if(ret_value != ERROR_INSUFFICIENT_BUFFER)
return -1;
ret_value = GetIpAddrTable(&ipAddress,&tcpTemp_size,TRUE);
if(ret_value != NO_ERROR)
return -1;
int ipNumber = ipAddress.dwNumEntries;
CPtrArray* ipArray = new CPtrArray();
for(int i=0;i<ipNumber;i++)
{
add.S_un.S_addr = ipAddress.table[i].dwAddr;
str1 = inet_ntoa(add);
} tcpTemp_size = 0;
// get tcp table list
ret_value = GetTcpTable (&tcptable,&tcpTemp_size,TRUE);
if(ret_value != ERROR_INSUFFICIENT_BUFFER)
return -1; ret_value = GetTcpTable (&tcptable,&tcpTemp_size,TRUE);
if(ret_value != NO_ERROR)
return -1; int nEntires = tcptable.dwNumEntries;
for(i=0;i<nEntires;i++)
{
add.S_un.S_addr = tcptable.table[i].dwLocalAddr;
str1 = (LPCTSTR)inet_ntoa(add);
if(str1.CompareNoCase("127.0.0.1") != 0 && str1.CompareNoCase("0.0.0.0") != 0)
*dwConnNum ++;
} // TCP 状态
ret_value = GetTcpStatistics(&tcpstat);
if(ret_value != NO_ERROR)
return -1;
*dwIStream = tcpstat.dwInSegs;
*dwOStream = tcpstat.dwOutSegs;
return 0;
}
地址被修改了。在c#调用的时候*dwIStream 赋值语句出现错误。
if(ret_value != NO_ERROR)
return -1;
在这里调用系统函数的时候,dwIStream的内存地址被修改了。
有谁知道解决方案的吗?