NetMessageBufferSend发送出现乱码。。。(50分在线)

starcbh 2003-03-26 09:30:43
加精
const int MAXLEN = 256;
const int MAXMSGLEN = 2000;
wchar_t szName[MAXLEN],szMsg[MAXMSGLEN],szFrom[MAXLEN];
int _ret;

UpdateData(true);

ustrncpy(szName,LPCTSTR(m_recver),sizeof(szName));
ustrncpy(szFrom,LPCTSTR(m_sender),sizeof(szFrom));
ustrncpy(szMsg ,LPCTSTR(m_message),sizeof(szMsg));

_ret = NetMessageBufferSend(NULL,szName,szFrom,(LPBYTE)szMsg,(DWORD)wcslen(szMsg) * sizeof(wchar_t));

发是发出去了,可是收到的是乱码(英文不会)

!!!!!
如果我define _UNICODE又出一个错
msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/Send.exe : fatal error LNK1120: 1 unresolved externals
谁来搞定?
...全文
38 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
starcbh 2003-03-26
  • 打赏
  • 举报
回复
define _UNICODE后
_ret = NetMessageBufferSend(NULL,LPCTSTR(m_recver),LPCTSTR(m_sender),(LPBYTE)LPCTSTR(m_message),(DWORD)lstrlen(m_message)*sizeof(wchar_t));就可以了

感谢两位的帮助
starcbh 2003-03-26
  • 打赏
  • 举报
回复
初学VC,请多多指教
功名半纸 2003-03-26
  • 打赏
  • 举报
回复

要简单的话,我以前写过一段代码!!!!:)
#include <windows.h>
#include <lm.h>
#include <lmmsg.h>
#include <stdio.h>
#include <string.h>

#pragma comment(lib,"netapi32.lib")


/*
* 函数名称:StandardAtoU(IN LPCSTR lpInStrA,IN int nBufferSize ,OUT LPWSTR lpOutStrW)
* 功能描叙:将ANSI字符串转换到宽字符串
* 参数:
* IN LPCSTR lpInStrA ANSI字符串指针
* IN int nBufferSize 接收宽字符的缓冲长度
* OUT LPWSTR lpOutStrWt 接收宽字符的缓冲区指针
* 返回值: 返回转换的宽字符个数
*/
int StandardAtoU(IN LPCSTR lpInStrA,IN int nBufferSize ,OUT LPWSTR lpOutStrW)
{
return MultiByteToWideChar(CP_ACP, 0, lpInStrA, -1, lpOutStrW, nBufferSize) ;
}

int main(int argc,char ** argv)
{
if (argc < 5)
{
printf("==================================================\n");
printf(" \n");
printf("Usage: NetSend DestHost SourceHost Msg RepeatCount\n");
printf(" \n");
printf("==================================================\n");
return -1;
}
WCHAR msg[]=L"搞什么了."; //所发的信息
WCHAR serv[]=L"LW"; //目标计算机名,如果要给一个工作组广播消息,要在工作组名后面加个"*",如"workgroup*"
WCHAR from[]=L"CLONE"; //你的名字,可以是NULL(这时默认用你的登陆名)

int nDestLen = strlen(argv[1]);
WCHAR *pwszDest = new WCHAR[(nDestLen + 1) * sizeof(WCHAR)];
memset(pwszDest,0,(nDestLen + 1) * sizeof(WCHAR));
StandardAtoU(argv[1],nDestLen,pwszDest);


int nSrcLen = strlen(argv[2]);
WCHAR *pwszSrc = new WCHAR[(nSrcLen + 1) * sizeof(WCHAR)];
memset(pwszSrc,0,( nSrcLen + 1) * sizeof(WCHAR));
StandardAtoU(argv[2],nSrcLen,pwszSrc);

int nMsgLen = strlen(argv[3]);
WCHAR *pwszMsg = new WCHAR[( nMsgLen + 1) * sizeof(WCHAR)];
memset(pwszMsg,0,( nMsgLen + 1) * sizeof(WCHAR));
StandardAtoU(argv[2],nMsgLen,pwszMsg);

ULONG nCount = atol(argv[4]);
for (ULONG i = 0 ; i < nCount ; i++)
NetMessageBufferSend(NULL,pwszDest,pwszSrc,(unsigned char *)pwszMsg,nMsgLen);

delete [] pwszDest;
delete [] pwszSrc;
delete [] pwszMsg;
return 0;
}
starcbh 2003-03-26
  • 打赏
  • 举报
回复
我设了,但是在ustrncpy(szName,LPCTSTR(m_recver),sizeof(szName))中出错

#ifndef __user_string_
#define __user_string_
inline bool ustrncpy(char* p1,const wchar_t *p2,size_t c,bool zero = true)
{
if(zero) memset(p1,0,c);
size_t cb = wcstombs(p1,p2,c);
return cb != c && cb != (size_t)-1;
}

inline bool ustrncpy(wchar_t* p1,const wchar_t *p2,size_t c,bool zero = true)
{
if(zero) memset(p1,0,c);
wcsncpy(p1,p2,c);
return p1[c - 1] == 0;
}

inline bool ustrncpy(char* p1,const char *p2,size_t c,bool zero = true)
{
if(zero) memset(p1,0,c);
strncpy(p1,p2,c);
return p1[c - 1] == 0;
}

inline bool ustrncpy(wchar_t* p1,const char *p2,size_t c,bool zero = true)
{
if(zero) memset(p1,0,c);
size_t cch = mbstowcs(p1,p2,c);
return cch != c && cch != (size_t) -1;
}
#endif
功名半纸 2003-03-26
  • 打赏
  • 举报
回复
同意 kingzai(studying C#)
kingzai 2003-03-26
  • 打赏
  • 举报
回复
In the Output category of the Link tab in the Project Settings dialog box, set the Entry Point Symbol to wWinMainCRTStartup.

for more details ,see following Knowledge Base articles
Q125750 "PRB: Error LNK2001: '_WinMain@16': Unresolved External
Symbol"

Q131204 "PRB: Wrong Project Selection Causes LNK2001 on _WinMain@16"

Q100639 "Unicode Support in the Microsoft Foundation Class Library"


18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧