标题:这个socket程序错在哪里?
只看楼主
hayashi
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-11-6
 问题点数:0 回复次数:1 
这个socket程序错在哪里?
程序很简单的,就两个文件。把dll.cpp编译成dll,然后在exe.cpp中调用。哪位帮忙编译
运行一下看看是不是也出错?先谢过啦!

源代码"exe.cpp"
__declspec(dllimport) void NullFun();
#pragma comment(lib,"dll.lib")
void main(){NullFun();}

源代码"dll.cpp"
#include <windows.h>
#include <stdio.h>
#include <winsock.h>
#pragma comment(lib,"wsock32.lib")

SOCKET sServer=NULL;
BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved)
{
  WSADATA ws;
  switch (ul_reason_for_call)
  {
  case DLL_PROCESS_ATTACH:
    WSAStartup(0x0101,&ws);
    sServer=socket(AF_INET,SOCK_STREAM,0);
    break;
  case DLL_PROCESS_DETACH:
    if(closesocket(sServer)!=0) printf("Error:%d\n",WSAGetLastError());
    else printf("Success!");
    WSACleanup();
    break;
  case DLL_THREAD_ATTACH:
  case DLL_THREAD_DETACH:
    break;
  }
  return TRUE;
}
__declspec(dllexport) void NullFun(){}
搜索更多相关主题的帖子: winsock 
2008-11-06 11:32
hayashi
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-11-6
得分:0 
没人回,自己顶一下。
DLL_RPOCESS_ATTACH 时生成的socket, 在DLL_PROCESS_DETACH 时却无法使用。
2008-11-06 18:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-242698-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.122884 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved