把一个exe改写成一个dll的问题!

jyq686 2005-03-04 01:06:53
////////transfer.h
#ifdef __cplusplus
#define EXPORT extern"C" __declspec(dllexport)
#else
#define EXPORT __declspec(dllexport)
#endif
EXPORT bool NetDirConstruc();

/////transfer.cpp
#include "Transfer.h"
#include "Winnetwk.h"
#include "winbase.h"
int WINAPI DllMain(HINSTANCE hInstance,DWORD fdwReason,PVIOD pvReserved)
{
return true;
}
EXPORT bool NetDirConstruc()
{
NETRESOURCE nts;

DWORD dwResult;

char Local_Drv[100];
char Remote_Share[100];
char cPassword[100];
char cUserName[100];

nts.lpProvider = NULL;
nts.dwType=RESOURCETYPE_DISK;
nts.dwDisplayType=RESOURCEDISPLAYTYPE_SHARE;
// nts.lpLocalName= _T("Z:");
// nts.lpRemoteName=_T("\\\\192.168.40.156\\report");
GetPrivateProfileString("TransferFile",
"UserName",
"KK",
cUserName,
1000,
".\\TransferFile.ini");


GetPrivateProfileString("TransferFile",
"PassWord",
"KK",
cPassword,
1000,
".\\TransferFile.ini");

GetPrivateProfileString("TransferFile",
"Local_Drv",
"KK",
Local_Drv,
1000,
".\\TransferFile.ini");

GetPrivateProfileString("TransferFile",
"Remote_Share",
"KK",
Remote_Share,
1000,
".\\TransferFile.ini");
// cout<<Local_Drv<<" "<<Remote_Share<<endl;

nts.lpLocalName =new char[100];
nts.lpRemoteName =new char[100];

strcpy(nts.lpLocalName,Local_Drv);
strcpy(nts.lpRemoteName,Remote_Share);

// cout<<nts.lpLocalName<<endl;
// cout<<nts.lpRemoteName<<endl;

dwResult=WNetAddConnection2(&nts,cPassword,cUserName,0);
// delete[] nts.lpLocalName;
// delete[] nts.lpRemoteName;
cout<<dwResult<<endl;
if (dwResult==NO_ERROR){
cout<<"建立映射成功!"<<endl;
return true;
}
else{
switch (dwResult)
{
case ERROR_ACCESS_DENIED:
cout<<"访问网络源被拒绝!"<<endl;
break;
case ERROR_ALREADY_ASSIGNED:
cout<<"此盘符已经存在,请在配置文件中重新指定!"<<endl;
break;
case ERROR_BAD_DEV_TYPE:
cout<<"本地设备和网络源设备类型不匹配!"<<endl;
break;
case ERROR_BAD_DEVICE:
cout<<"指定的盘符无效!"<<endl;
break;
case ERROR_BAD_NET_NAME:
cout<<"网络源名无效!"<<endl;
break;
case ERROR_BAD_PROFILE:
cout<<"用户概述是一个错误的格式!";
break;
case ERROR_BAD_PROVIDER:
cout<<"由lpProvider成员所指定的值与所提供的不匹配!"<<endl;
break;
case ERROR_BUSY:
cout<<"router or provider很忙,可能正在初始化!"<<endl;
break;
case ERROR_CANCELLED:
cout<<"正在连接的时候被人取消了!"<<endl;
break;
case ERROR_CANNOT_OPEN_PROFILE:
cout<<"不能打开profile以建立持久的连接!"<<endl;
break;
case ERROR_DEVICE_ALREADY_REMEMBERED:
cout<<"已经登录了,不能再登录!"<<endl;
break;
case ERROR_EXTENDED_ERROR:
cout<<"网络细节错误,调用WNetGetLastError可以得到详细的错误信息!"<<endl;
break;
case ERROR_INVALID_PASSWORD:
cout<<"无效的密码!"<<endl;
break;
case ERROR_NO_NET_OR_BAD_PATH:
cout<<"网络路径名不存在!"<<endl;
break;
case ERROR_NO_NETWORK:
cout<<"网络难以获得!"<<endl;
break;
default:
cout<<"未知错误!"<<endl;
break;
}
return false;
}

}

有50多个错误,都来自于NETRESOURCE结构体。如果把
#ifdef __cplusplus
#define EXPORT extern"C" __declspec(dllexport)
#else
#define EXPORT __declspec(dllexport)
#endif
注释掉就只有3个错误,怎么搞啊,刚学写dll,谢谢
...全文
57 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
边走边瞧 2005-03-04
晕啊,谁有时间看你的源代码呀?
回复
jyq686 2005-03-04
怎么我的问题老没人回答啊
回复
相关推荐
发帖
进程/线程/DLL
创建于2007-09-28

1.5w+

社区成员

VC/MFC 进程/线程/DLL
申请成为版主
帖子事件
创建了帖子
2005-03-04 01:06
社区公告
暂无公告