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
谁来搞定?
...全文
188 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"


内容概要:本文系统介绍了C语言在底层系统编程与数据结构工程化实现中的核心技术,同时融合了现代Web开发中TypeScript类型系统与全栈项目架构设计。C语言部聚焦操作系统接口调用、内存管理、文件操作与进程控制,深入讲解指针、动态内存配、结构体与位运算,并通过实现简易shell、日志系统等工具强化实践能力;数据结构部涵盖链表、栈、队列、哈希表、二叉树与图结构的C语言实现,结合时间与空间复杂度析,应用于缓存系统、路径搜索等实际场景,并引入内存池优化频繁配问题。TypeScript部强调静态类型在提升代码可靠性中的作用,讲解基础类型、泛型、交叉与联合类型、条件类型等,并通过DTO与接口类型保障前后端数据一致性。全栈项目基于React/Vue + Node.js架构,实现RESTful API、JWT认证、统一响应结构,并结合ORM进行数据库操作,完成用户系统、权限管理与任务管理系统等实战项目。同时强调工程化建设,包括代码规范、单元测试、CI/CD及Docker容器化部署。; 适合人群:具备C语言和JavaScript基础,有一定编程经验,希望深入系统编程或向全栈工程师发展的1-3年开发者;; 使用场景及目标:①掌握C语言在系统级开发中的核心应用,如内存管理与系统调用;②实现常用数据结构并应用于工程场景;③构建类型安全的全栈项目,提升前后端协同开发效率;④建立完整的软件工程化能力体系; 阅读建议:学习过程中应结合代码实践,动手实现各类数据结构与系统工具,同步搭建全栈项目,配置工程化工具链,注重理论与实际项目的深度融合。
内容概要:本文介绍了脚本自动化运维在芯片行业中应用于EDA工具链的实战项目,重点解决工具配置、许可证管理与仿真任务调度等效率瓶颈问题。通过构建Bash与Python混合的自动化脚本系统,实现License动态调度、仿真任务并行化、断点续跑及版本兼容性处理,显著提升资源利用率与设计效率。典型案例如License调度脚本通过监控进程活跃度回收闲置许可,结合Flask API实现服务化查询与CI/CD集成,使工程师等待时间从4小时降至15钟,License利用率提升至89%,并在7nm GPU项目中节约千万级成本。文章还展望了多云调度、AI预测与开源EDA适配等未来方向。; 适合人群:芯片设计工程师、EDA工具运维人员、自动化脚本开发者,以及具备Python/Bash基础的半导体行业技术人员;; 使用场景及目标:①优化高成本EDA许可证的配与回收,提升资源利用率;②实现大规模仿真任务的自动编排与容错执行;③将自动化脚本嵌入CI/CD流程,支撑高频次验证与签核需求;④降低流片周期与研发成本,加速国产芯片研发进程; 阅读建议:此资源强调工程实践与系统思维的结合,建议读者在掌握基本脚本语法基础上,重点关注异常处理、权限控制、日志审计等生产级设计细节,并尝试将其方案迁移至实际EDA流程中进行调试与优化。
内容概要:本文档整合《六韬》兵法智慧,构建了一套适用于现代团队管理的“五维战力提升模型”,涵盖骨干识别激励(武锋)、战术灵活运用(林战)、团队凝聚力训练(合)、人才选拔标准(选练)与培训落地体系(教战)五大模块。通过35天系统化实战路径、15个实用工具模板、五维诊断评估及身体锚点仪式,帮助管理者诊断团队短板,逐步建立科学化、可复制的团队战力建设体系,解决骨干流失、培训失效、战术僵化等常见管理难题,并辅以韩信点兵、赵括纸上谈兵等历史案例增强理解。; 适合人群:具备一定团队管理经验,面临骨干识别难、培训落地难、团队协同弱等问题的基层及中层管理者,尤其适合10人以上团队负责人;小团队也可根据实际情况简化使用。; 使用场景及目标:①用于系统诊断并改善团队在激励、工、选拔、培训等方面的薄弱环节;②指导管理者按照35天路径逐步实施变革,实现团队战力的整体跃升;③结合历史案例与工具模板,提升管理决策的深度与执行力。; 阅读建议:建议用户先完成五维诊断,锁定最需改进的1-2个维度优先突破,不必强求一次性执行全部模块;所有工具均可直接套用,配合每日实操动作与身体锚点仪式强化执行惯性,同时可联动其他管理资源包(如立将威信术、决策领导力三合包)形成完整管理体系。

18,357

社区成员

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

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