<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>Vtotop软件开发中心</title><link>https://www.vtotop.com/</link><description>Vtotop软件开发,软件开发博客,软件开发教程,Vtotop软件开发中心</description><item><title>仿贵州麻友圈2房卡模式台子出租贵州麻友圈2游戏源码</title><link>https://www.vtotop.com/post/21.html</link><description>&lt;p&gt;仿贵州麻友圈2房卡模式。包含代理系统，圈主创建创建的圈子里面的游戏都是扣圈主房卡，圈主又自己的后台可从官方购买房卡，然后会员在圈主中游戏是扣除圈主房卡，和麻友圈2的模式是一样的，并且界面和游戏内效果动画都是仿制的麻友圈2的。具体可看下面演示截图。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;如有问题可联系本站客服，这套系统我花费了很多心血。网上绝对没有一样，整体框架都做了大量的修改而不只是UI修改，一直在不停的优化修改，长期维护这套系统。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796645779613.jpg&quot; style=&quot;&quot; title=&quot;2.jpg&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796646122181.jpg&quot; style=&quot;&quot; title=&quot;3.jpg&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796646897332.jpg&quot; style=&quot;&quot; title=&quot;1.jpg&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796646262706.jpg&quot; style=&quot;&quot; title=&quot;4.jpg&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796646870415.jpg&quot; style=&quot;&quot; title=&quot;5.jpg&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796647505930.jpg&quot; style=&quot;&quot; title=&quot;6.jpg&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796647261773.jpg&quot; style=&quot;&quot; title=&quot;7.jpg&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796647618423.jpg&quot; style=&quot;&quot; title=&quot;8.jpg&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796647331620.jpg&quot; style=&quot;&quot; title=&quot;9.jpg&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796648494832.jpg&quot; style=&quot;&quot; title=&quot;10.jpg&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796648456747.jpg&quot; style=&quot;&quot; title=&quot;11.jpg&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796649179469.jpg&quot; style=&quot;&quot; title=&quot;13.jpg&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796649117475.jpg&quot; style=&quot;&quot; title=&quot;12.jpg&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796649338311.jpg&quot; style=&quot;&quot; title=&quot;14.jpg&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796650507338.jpg&quot; style=&quot;&quot; title=&quot;15.jpg&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796650486926.jpg&quot; style=&quot;&quot; title=&quot;17.jpg&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796650383506.jpg&quot; style=&quot;&quot; title=&quot;16.jpg&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796650457338.jpg&quot; style=&quot;&quot; title=&quot;18.jpg&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796651823389.jpg&quot; style=&quot;&quot; title=&quot;19.jpg&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796652291437.png&quot; style=&quot;&quot; title=&quot;20.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796653278963.png&quot; style=&quot;&quot; title=&quot;22.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796655872464.png&quot; style=&quot;&quot; title=&quot;23.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796656890827.png&quot; style=&quot;&quot; title=&quot;24.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796657101625.png&quot; style=&quot;&quot; title=&quot;25.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796659522843.png&quot; style=&quot;&quot; title=&quot;26.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603061772796661360347.png&quot; style=&quot;&quot; title=&quot;27.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Fri, 06 Mar 2026 19:25:05 +0800</pubDate></item><item><title>【智优客服2.0】|多语言客服|Saas客服|多商户客服|客服系统|在线客服|聊天系统，已经绕过授权</title><link>https://www.vtotop.com/post/20.html</link><description>&lt;p&gt;某站网的优信2.0系统，绕过授权。官方售价是5800。我也搭建起来试了下，感觉还不错。&lt;/p&gt;&lt;p&gt;但是注意，没有电脑客户端的，抽空我打算自己写个对接的电脑客户端。官方好像还有个收款功能，那个我没看不知道这几有没有没有测，我只测了客户对接的功能，这些都没问题。&lt;/p&gt;&lt;p&gt;这个解决了授权问题和自己测试了，我也打算搞个在线客服的网站。又要这个系统的可以联系。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;客服网址：&lt;a href=&quot;https://kefu.vtotop.com&quot; target=&quot;_self&quot; title=&quot;https://kefu.vtotop.com&quot;&gt;https://kefu.vtotop.com&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603051772713931349099.png&quot; style=&quot;&quot; title=&quot;截图20260305203105.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603051772713932339557.png&quot; style=&quot;&quot; title=&quot;截图20260305203158.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603051772713487116069.png&quot; style=&quot;&quot; title=&quot;截图20260305202348.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603051772713487782156.png&quot; style=&quot;&quot; title=&quot;截图20260305202214.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603051772713487681559.png&quot; style=&quot;&quot; title=&quot;截图20260305202254.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603051772713487565116.png&quot; style=&quot;&quot; title=&quot;截图20260305202414.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2026/03/202603051772713488903525.png&quot; style=&quot;&quot; title=&quot;截图20260305202433.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Thu, 05 Mar 2026 20:19:59 +0800</pubDate></item><item><title>完善棋牌台子出租，包升级维护等全包</title><link>https://www.vtotop.com/post/19.html</link><description>&lt;p&gt;完善棋牌台子出租，包升级维护等全包。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;包服务器+包维护+24小时在线解决+全部权限+单独服务器独立运营。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;完全独立的，你只负责经营你的就行，如果有问题或者需要做玩法调整可修改。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;效果演示视频：&lt;/p&gt;&lt;p&gt;&lt;iframe class=&quot;edui-faked-video&quot; src=&quot;https://www.vtotop.com/xiangmu1.mp4&quot; width=&quot;420&quot; height=&quot;280&quot; allowfullscreen=&quot;&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;</description><pubDate>Sat, 28 Feb 2026 15:31:05 +0800</pubDate></item><item><title>【开发笔记】创胜系列增加游戏开局确认(自动准备和非自动准备)功能</title><link>https://www.vtotop.com/post/17.html</link><description>&lt;p&gt;【开发笔记】&lt;/p&gt;&lt;p&gt;只记录逻辑分析和注意的地方，其他简单的不做记录。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;逻辑分析：&lt;/p&gt;&lt;p&gt;1。俱乐部设置增加开局确认数据保存到数据库&lt;/p&gt;&lt;p&gt;2。创建房间后发送发送的房间数据带上开局联盟设置的参数&lt;/p&gt;&lt;p&gt;3。进入联盟时查询房间列表时要带上参数&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;1&amp;nbsp; 2两个问题好解决，需要注意的是第三个问题。第三个问题有两个地方，是分别是联盟和俱乐部，似乎是两种不同的请求。因为定制的俱乐部，联盟没去仔细看。代码猜测是联盟反向注册到协调服务器的时候带上参数，这种方式会比较简单，修改量比较少。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;俱乐部却不是这里，俱乐部是全局的：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-cpp&quot;&gt;CGlobalInfoManager::CreateRoom&lt;/pre&gt;&lt;p&gt;这个函数，最好的就是对这个函数传入的时候多添加一个参数进去，然后存储数据的时候一起保存起来，然后再进入俱乐部查询房间的地方为每个房间添加这个参数，前端&amp;nbsp;UI根据这个参数是否显示开局确认提示标志。&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;联盟查询房间列表是：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-cpp&quot;&gt;CAttemperEngineSink::OnTCPNetworkMainClubService&lt;/pre&gt;&lt;p&gt;这个函数中的：&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-cpp&quot;&gt;//查询现有房间
		std::vector&amp;lt;tagRoomTableStatus*&amp;gt;&amp;nbsp;vRoomTableStatus;
		m_GlobalInfoManager.EnumRoomTable(vRoomTableStatus,&amp;nbsp;0,&amp;nbsp;pEnterClub-&amp;gt;dwClubID,&amp;nbsp;0);
		for&amp;nbsp;(WORD&amp;nbsp;i&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;i&amp;nbsp;&amp;lt;&amp;nbsp;vRoomTableStatus.size();&amp;nbsp;i++)
		{
			tagRoomTableStatus*pTableStatus&amp;nbsp;=&amp;nbsp;vRoomTableStatus[i];
			ServerRoomInfo&amp;nbsp;*&amp;nbsp;pTableInfo&amp;nbsp;=&amp;nbsp;(ServerRoomInfo&amp;nbsp;*)(szBuff&amp;nbsp;+&amp;nbsp;wHeadSize&amp;nbsp;+&amp;nbsp;pRoomInfo-&amp;gt;wRoomCnt*wTagSize);

			CopyServerRoomInfor(pTableInfo,&amp;nbsp;pTableStatus);
			pTableInfo-&amp;gt;dwkaijuqr&amp;nbsp;=&amp;nbsp;pTableStatus-&amp;gt;dwkaijuqr;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//开局确认
			for&amp;nbsp;(int&amp;nbsp;j&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;j&amp;nbsp;&amp;lt;&amp;nbsp;MAX_CHAIR;&amp;nbsp;j++)
			{
				if&amp;nbsp;(pTableStatus-&amp;gt;dwUserID[j]&amp;nbsp;!=&amp;nbsp;0)&amp;nbsp;pTableInfo-&amp;gt;byPlayerCnt++;
			}
			pRoomInfo-&amp;gt;wRoomCnt++;
			if&amp;nbsp;((pRoomInfo-&amp;gt;wRoomCnt&amp;nbsp;+&amp;nbsp;1)&amp;nbsp;*&amp;nbsp;wTagSize&amp;nbsp;&amp;gt;&amp;nbsp;16000)&amp;nbsp;break;
		}&lt;/pre&gt;&lt;p&gt;这段代码可以看出是由：&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-cpp&quot;&gt;m_GlobalInfoManager.EnumRoomTable&lt;/pre&gt;&lt;p&gt;这个函数权举循环查询后将数据传入变量vRoomTableStatus这个的。而查看CopyServerRoomInfor函数可以看到代码中：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-cpp&quot;&gt;tagRoomTableStatus&amp;nbsp;*&amp;nbsp;CGlobalInfoManager::EnumRoomTable(std::vector&amp;lt;tagRoomTableStatus*&amp;gt;&amp;nbsp;&amp;amp;vRoomTableStatus,&amp;nbsp;DWORD&amp;nbsp;dwUserID,&amp;nbsp;DWORD&amp;nbsp;dwClubID,&amp;nbsp;DWORD&amp;nbsp;dwLeagueID)
{
	vRoomTableStatus.clear();
	tagRoomTableStatus&amp;nbsp;*&amp;nbsp;pTableStatus&amp;nbsp;=&amp;nbsp;NULL;

	for&amp;nbsp;(auto&amp;nbsp;it&amp;nbsp;:&amp;nbsp;m_MapRoomNum)
	{
		pTableStatus&amp;nbsp;=&amp;nbsp;it.second;
		if&amp;nbsp;(pTableStatus&amp;nbsp;==&amp;nbsp;NULL)&amp;nbsp;break;
		if&amp;nbsp;(pTableStatus-&amp;gt;dwApplyTime&amp;nbsp;!=&amp;nbsp;0)&amp;nbsp;continue;
		if&amp;nbsp;(dwUserID&amp;nbsp;!=&amp;nbsp;0&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;pTableStatus-&amp;gt;dwPayUserID&amp;nbsp;!=&amp;nbsp;dwUserID)&amp;nbsp;continue;
		if&amp;nbsp;(dwLeagueID&amp;nbsp;!=&amp;nbsp;0)&amp;nbsp;{&amp;nbsp;if&amp;nbsp;(pTableStatus-&amp;gt;dwLeagueID&amp;nbsp;!=&amp;nbsp;dwLeagueID)&amp;nbsp;continue;&amp;nbsp;}
		else&amp;nbsp;if&amp;nbsp;(dwClubID&amp;nbsp;!=&amp;nbsp;0&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;pTableStatus-&amp;gt;dwClubID&amp;nbsp;!=&amp;nbsp;dwClubID)&amp;nbsp;continue;
		vRoomTableStatus.push_back(pTableStatus);
	}
	return&amp;nbsp;NULL;
}&lt;/pre&gt;&lt;p&gt;是循环的变量m_MapRoomNum。这里注意了，m_MapRoomNum这个变量全文件搜索有两个地方在存入数据，是不一样的。。。&lt;/p&gt;&lt;p&gt;由于是开发的俱乐部模式，所以用函数:&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-cpp&quot;&gt;tagRoomTableStatus&amp;nbsp;*&amp;nbsp;CGlobalInfoManager::CreateRoom&lt;/pre&gt;&lt;p&gt;这个函数传入变量新增个开局确认的变量就行，比如我的代码：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-cpp&quot;&gt;tagRoomTableStatus&amp;nbsp;*&amp;nbsp;CGlobalInfoManager::CreateRoom(DWORD&amp;nbsp;dwUserID,&amp;nbsp;DWORD&amp;nbsp;dwPayUserID,&amp;nbsp;WORD&amp;nbsp;wKindID,&amp;nbsp;DWORD&amp;nbsp;dwClubID,&amp;nbsp;DWORD&amp;nbsp;dwLeagueID,&amp;nbsp;DWORD&amp;nbsp;dwServerRules,&amp;nbsp;DWORD&amp;nbsp;dwkaijuqr)
{	
	//新建房间号
	DWORD&amp;nbsp;dwRoomID&amp;nbsp;=&amp;nbsp;PRIME_ROOM;
	if&amp;nbsp;(&amp;nbsp;dwClubID&amp;nbsp;!=&amp;nbsp;0&amp;nbsp;)&amp;nbsp;dwRoomID&amp;nbsp;=&amp;nbsp;CLUB_ROOM;
	if&amp;nbsp;(&amp;nbsp;dwLeagueID&amp;nbsp;!=&amp;nbsp;0&amp;nbsp;)&amp;nbsp;dwRoomID&amp;nbsp;=&amp;nbsp;LEAGUE_ROOM;
	dwRoomID&amp;nbsp;=&amp;nbsp;GetNewRoomNum(&amp;nbsp;dwRoomID&amp;nbsp;);
	if&amp;nbsp;(&amp;nbsp;dwRoomID&amp;nbsp;==&amp;nbsp;0&amp;nbsp;||&amp;nbsp;wKindID&amp;nbsp;==&amp;nbsp;0&amp;nbsp;)&amp;nbsp;return&amp;nbsp;NULL;

	RoomTableStateArray&amp;nbsp;*&amp;nbsp;pArr&amp;nbsp;=&amp;nbsp;SearchRoomArr(&amp;nbsp;wKindID&amp;nbsp;);
	if&amp;nbsp;(&amp;nbsp;pArr&amp;nbsp;==&amp;nbsp;NULL&amp;nbsp;)&amp;nbsp;return&amp;nbsp;NULL;
	BYTE&amp;nbsp;byScoreRoom&amp;nbsp;=&amp;nbsp;0;//房卡成绩
	if&amp;nbsp;(&amp;nbsp;dwServerRules&amp;nbsp;&amp;amp;&amp;nbsp;SERVER_RULES_SCORE&amp;nbsp;)&amp;nbsp;byScoreRoom&amp;nbsp;=&amp;nbsp;1;//房卡积分
	if&amp;nbsp;(&amp;nbsp;dwServerRules&amp;nbsp;&amp;amp;&amp;nbsp;SERVER_RULES_GOLD&amp;nbsp;)&amp;nbsp;byScoreRoom&amp;nbsp;=&amp;nbsp;2;//房卡金币
	if&amp;nbsp;(dwServerRules&amp;nbsp;&amp;amp;&amp;nbsp;GAME_GENRE_ROOM_GOLD)&amp;nbsp;byScoreRoom&amp;nbsp;=&amp;nbsp;3;//房卡积分
	if&amp;nbsp;(dwServerRules&amp;nbsp;&amp;amp;&amp;nbsp;SERVER_RULES_100SCORE)&amp;nbsp;byScoreRoom&amp;nbsp;=&amp;nbsp;4;//房卡积分
	if&amp;nbsp;(dwServerRules&amp;nbsp;&amp;amp;&amp;nbsp;SERVER_RULES_100GOLD)&amp;nbsp;byScoreRoom&amp;nbsp;=&amp;nbsp;5;//房卡金币

	for&amp;nbsp;(&amp;nbsp;int&amp;nbsp;i&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;i&amp;nbsp;&amp;lt;&amp;nbsp;pArr-&amp;gt;GetCount();&amp;nbsp;i++&amp;nbsp;)
	{
		tagRoomTableStatus&amp;nbsp;*&amp;nbsp;pTableStatus&amp;nbsp;=&amp;nbsp;&amp;amp;pArr-&amp;gt;GetAt(&amp;nbsp;i&amp;nbsp;);
		if&amp;nbsp;(&amp;nbsp;pTableStatus-&amp;gt;dwRoomID&amp;nbsp;!=&amp;nbsp;0&amp;nbsp;)&amp;nbsp;continue;&amp;nbsp;//过滤已开房间
		if&amp;nbsp;(&amp;nbsp;pTableStatus-&amp;gt;byScoreServer&amp;nbsp;!=&amp;nbsp;byScoreRoom&amp;nbsp;)&amp;nbsp;continue;//过滤服务器类型

		//初始化数据
		pTableStatus-&amp;gt;dwRoomID&amp;nbsp;=&amp;nbsp;dwRoomID;
		pTableStatus-&amp;gt;dwCreaterID&amp;nbsp;=&amp;nbsp;dwUserID;
		pTableStatus-&amp;gt;dwServerRules&amp;nbsp;=&amp;nbsp;dwServerRules;
		pTableStatus-&amp;gt;dwClubID&amp;nbsp;=&amp;nbsp;dwClubID;
		pTableStatus-&amp;gt;dwLeagueID&amp;nbsp;=&amp;nbsp;dwLeagueID;
		pTableStatus-&amp;gt;wProgress&amp;nbsp;=&amp;nbsp;0;
		pTableStatus-&amp;gt;byPartID&amp;nbsp;=&amp;nbsp;0;
		pTableStatus-&amp;gt;dwCreatTime&amp;nbsp;=&amp;nbsp;0;
		pTableStatus-&amp;gt;dwApplyTime&amp;nbsp;=&amp;nbsp;(&amp;nbsp;DWORD&amp;nbsp;)&amp;nbsp;time(&amp;nbsp;NULL&amp;nbsp;);
		pTableStatus-&amp;gt;lRoomCard&amp;nbsp;=&amp;nbsp;0;
		pTableStatus-&amp;gt;wAndroidCnt&amp;nbsp;=&amp;nbsp;0;
		pTableStatus-&amp;gt;dwkaijuqr&amp;nbsp;=&amp;nbsp;dwkaijuqr;
		pTableStatus-&amp;gt;byCardType&amp;nbsp;=&amp;nbsp;(&amp;nbsp;dwServerRules&amp;nbsp;&amp;amp;&amp;nbsp;SERVER_RULES_AA&amp;nbsp;)&amp;nbsp;?&amp;nbsp;1&amp;nbsp;:&amp;nbsp;0;
		pTableStatus-&amp;gt;dwPayUserID&amp;nbsp;=&amp;nbsp;/*pTableStatus-&amp;gt;byCardType&amp;nbsp;?&amp;nbsp;0&amp;nbsp;:*/&amp;nbsp;dwPayUserID;
		ZeroMemory(&amp;nbsp;pTableStatus-&amp;gt;dwRules,&amp;nbsp;sizeof(&amp;nbsp;pTableStatus-&amp;gt;dwRules&amp;nbsp;)&amp;nbsp;);
		ZeroMemory(&amp;nbsp;pTableStatus-&amp;gt;dwUserID,&amp;nbsp;sizeof(&amp;nbsp;pTableStatus-&amp;gt;dwUserID&amp;nbsp;)&amp;nbsp;);
		//房号索引
		m_MapRoomNum[dwRoomID]&amp;nbsp;=&amp;nbsp;pTableStatus;
		return&amp;nbsp;pTableStatus;
	}

	return&amp;nbsp;NULL;
}&lt;/pre&gt;&lt;p&gt;最厚一个参数就是开掘确认参数。而且这个函数的调用是在：&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-cpp&quot;&gt;&amp;nbsp;CAttemperEngineSink::OnDBPCCreatRoomRes&lt;/pre&gt;&lt;p&gt;这个函数中。也就是在发送目标服务器的时候带上参数就行。&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;好了，其他就很简单了就不写了，只记录方便自己下次使用。确实你开发的时候遇到了，也没看懂那么可以留言，大家一起研究解决哈&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;如果是联盟的话可以关注这个函数：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-cpp&quot;&gt;tagRoomTableStatus&amp;nbsp;*&amp;nbsp;CGlobalInfoManager::UpdateRoom&lt;/pre&gt;&lt;p&gt;这个函数是反向注册协调哪里传入应该。具体我没研究，因为用不到。反正我是最开始没注意，走了很多弯路哈哈&lt;br/&gt;&lt;/p&gt;</description><pubDate>Fri, 05 Dec 2025 03:00:38 +0800</pubDate></item><item><title>Telegram账号又被封了。。。</title><link>https://www.vtotop.com/post/16.html</link><description>&lt;p&gt;Telegram账号又被封了。。。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;问题是还特么无法注册了，现在注册还要在收费了，问题是特么收费了还注册不成功、、、、、狗日的、、、、真特么黑啊&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;买了个新号了。左边客服账号已经更新了&lt;/p&gt;</description><pubDate>Fri, 31 Oct 2025 18:22:44 +0800</pubDate></item><item><title>自己开发的后台棋牌管理系统,只适合我自己二开的棋牌</title><link>https://www.vtotop.com/post/15.html</link><description>&lt;p&gt;这个后台就是我自己开发的客户端后台管理系统，只适合我二开的棋牌系统，其他系统不可用。发出来给大家看下，要不然也说不清楚啥样的。这个机器人动态和事件和数据分析板块是实时跳动的。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2025/10/202510311761887294489357.png&quot; style=&quot;&quot; title=&quot;1.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2025/10/202510311761887300179694.png&quot; style=&quot;&quot; title=&quot;2.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2025/10/202510311761887300819893.png&quot; style=&quot;&quot; title=&quot;4.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2025/10/202510311761887302857801.png&quot; style=&quot;&quot; title=&quot;3.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2025/10/202510311761887303695598.png&quot; style=&quot;&quot; title=&quot;5.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2025/10/202510311761887303288324.png&quot; style=&quot;&quot; title=&quot;6.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Fri, 31 Oct 2025 13:06:28 +0800</pubDate></item><item><title>新二开的套棋牌,这套棋牌室朋友圈模式,非大联盟模式</title><link>https://www.vtotop.com/post/14.html</link><description>&lt;p&gt;新二开的套棋牌,这套棋牌室朋友圈模式,非大联盟模式。这套棋牌主要是全新UI，精仿麻友圈棋牌的，功能主要和大联盟模式差不多，但是这套是针对朋友圈模式做的二开，所有功能都重新搞了的，所以不适合大联盟，为了减少报体积和服务器的优化，可以说是吧大联盟模式给砍掉了的。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;注意这套是可以给亲友圈每个游戏开启或者关闭不同玩儿，如果关闭了摸个玩儿创建房间的时候这个玩儿法就叫不可选中，然后就是游戏里面报听时显示胡不同牌所得的分。主要是针对的做的这些功能。然后就是UI是全新设计做的，这套系统是客户定做的，整套UI也是客户找人设计的，所以这套UI不对外出售。如果有看上这套的需要自己设计UI或者使用原本的其他UI进行开发。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2025/10/202510311761886680253764.png&quot; style=&quot;&quot; title=&quot;2.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2025/10/202510311761886685512384.png&quot; style=&quot;&quot; title=&quot;3.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2025/10/202510311761886686554865.png&quot; style=&quot;&quot; title=&quot;4.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2025/10/202510311761886691297642.png&quot; style=&quot;&quot; title=&quot;5.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2025/10/202510311761886691214325.png&quot; style=&quot;&quot; title=&quot;6.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2025/10/202510311761886695465273.png&quot; style=&quot;&quot; title=&quot;1.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2025/10/202510311761886696548147.png&quot; style=&quot;&quot; title=&quot;7.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2025/10/202510311761886696314935.png&quot; style=&quot;&quot; title=&quot;8.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Fri, 31 Oct 2025 12:47:50 +0800</pubDate></item><item><title>运营棋牌游戏源码,棋牌搭建,福建十三张,带暗水游戏棋牌源码二次开发版本</title><link>https://www.vtotop.com/post/12.html</link><description>&lt;p&gt;牌麻将,福建十三张,金花,牛牛,推筒子等游戏开发定制。&lt;/p&gt;&lt;p&gt;这个项目我修复加二开搞了几个月，是创胜二次开发的，修复了之前的很多问题，之前的创胜不稳定时常停止而且机器人有问题，时长能开桌有时候不能开桌。我二开的都修复了这些问题，测试的时候稳定跑了几万桌没出现问题。然后游戏目前都二开过和修复了十几个游戏，如果没有你需要的可以联系客服进行二开或者定制游戏。现在的修复好的游戏如下：&lt;/p&gt;&lt;p&gt;福建十三水，炸金花，推筒子，牛牛，三公，跑得快，血战麻将，红中麻将，贵州麻将，闷胡流血，贵阳捉鸡麻将，长沙麻将，山西扣点点麻将。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;注意：这套系统和原本的系统却别比较大，游戏不能公用。协调核心服务器都是二开过的。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;机器人参与改了的，比如设置100桌，同时开10桌。这个他不会直接开10桌，只会同时开三分之一也就是3桌，剩下的7桌会进行补位。也就是说机器人会自己开3桌，当有会员开桌的时候剩余的7桌机器人会进行补位。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;抽水模式完全更改了的，现在的抽水模式可抽暗水和明水两种形式，没个小局进行抽取。后台有配置开启和关闭。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;后台系统完全更改了的，是新版客户端后台，没有了网页后台。客户端后台是exe电脑客户端后台，完全开发的，网上流传的网页后台有后门，如果需要网页后台可以用之前的网页后台，只不过部分设置之前的网页后台没有。现在的新后台数据非常清晰，实时更新显示数据的，方便机器人运营。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;本系统的这个福建13张不是网上那些13张，本款福州13张二开的，开始游戏前只会发8张牌，然后提示选择下注，下注后再摆牌开牌。全部开牌后再显示摆的牌，如果非全部开牌可以重新摆牌。&lt;strong&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;分单色和多色，选单色就是只有一种有颜色，如红包、黑桃、梅花这种形式，然后每个人一副牌。也就是说5个人玩儿就是5副牌。普通13张没有这些&lt;/span&gt;&lt;/strong&gt;，这些都是二开的。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;现在的机器人全是智能陪玩儿的，现在的智能机器人需要后台配置点位，也就是说设置点位后机器人盈利不到点位会几率控牌，当赢到点位时会自动取消控牌只智能陪玩儿。【这个机器人陪玩儿花费了很多心思，因为要最大程度模拟真人，出牌时间都是随机的。不是网上那些机器人傻傻的，一眼人机的感觉】&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;【注意：】本系统不卖源码，只卖组件，这个是运营本，长期维护升级的，请不要拿那些论坛版本一堆BUG的来比。如果你在使用过程中发现BUG，免费修复。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;如果有其他问题可以联系客服。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2025/10/202510311761882009612067.png&quot; style=&quot;&quot; title=&quot;3.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2025/10/202510311761882012418876.png&quot; style=&quot;&quot; title=&quot;4.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2025/10/202510311761882012175278.png&quot; style=&quot;&quot; title=&quot;2.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2025/10/202510311761882014101603.png&quot; style=&quot;&quot; title=&quot;6.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2025/10/202510311761882015523325.png&quot; style=&quot;&quot; title=&quot;5.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://www.vtotop.com/zb_users/upload/2025/10/202510311761882015875785.png&quot; style=&quot;&quot; title=&quot;1.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Fri, 31 Oct 2025 12:15:17 +0800</pubDate></item><item><title>VS2022 编译的程序依赖的 VC 运行库 DLL 怎么手动提取随程序打包这样让没有安装的电脑也能运行?</title><link>https://www.vtotop.com/post/11.html</link><description>&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;VS2022 编译的程序依赖的 VC 运行库 DLL 怎么手动提取随程序打包这样让没有安装的电脑也能运行?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;在 VS2022 中手动提取并打包程序依赖的 VC 运行库 DLL，让未安装 vc_redist.x64.exe 的电脑也能运行程序，可按以下 4 个步骤 操作，每一步都有明确的操作指引：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;步骤 1：确定程序依赖的 VC 运行库 DLL（关键！避免盲目复制）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;首先需要明确你的程序具体依赖哪些 VC 运行库 DLL（不同程序依赖可能不同，比如是否包含 VCRUNTIME140_1.dll 等）。推荐用 VS 自带的 dumpbin 工具 精准查询：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;操作步骤：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;1、打开 VS2022 开发人员命令提示符：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;按下 Win + S，搜索 “Developer Command Prompt for VS 2022”，右键 “以管理员身份运行”（确保权限足够）。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;2、定位到你的程序 .exe 所在目录：用 cd 命令切换路径，例如：&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-cpp&quot;&gt;cd&amp;nbsp;C:\你的程序输出目录\Release&amp;nbsp;&amp;nbsp;#&amp;nbsp;假设程序在&amp;nbsp;Release&amp;nbsp;文件夹下&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;3、执行命令查看依赖的 DLL：输入以下命令（将 你的程序名.exe 替换为实际的程序文件名）：&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-cpp&quot;&gt;dumpbin&amp;nbsp;/dependents&amp;nbsp;你的程序名.exe&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;4、识别 VC 运行库 DLL：输出结果中，名称以 MSVCP140、VCRUNTIME140、CONCRT140 开头的 DLL 就是需要打包的 VC 运行库（其他 DLL 可能是 Qt 或系统自带的，暂不处理）。示例依赖（64 位程序常见）：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;MSVCP140.dll&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;VCRUNTIME140.dll&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;VCRUNTIME140_1.dll&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;CONCRT140.dll&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;步骤 2：找到这些 VC 运行库 DLL 的位置（确保版本匹配）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;从你的开发机（已安装 VS2022）中找到步骤 1 识别的 DLL，优先从 VS 安装目录提取（版本与编译环境完全匹配，避免系统目录中可能存在的旧版本）。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;常见路径（64 位程序）：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;VS2022 安装目录（推荐）：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;plaintext&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;C:\Program Files (x86)\Microsoft Visual Studio\2022\Community\VC\Redist\MSVC\14.38.33130\x64\Microsoft.VC143.CRT\&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;说明：14.38.33130 是版本号（你的 VS 版本可能不同，需替换为实际路径中的版本号，可在 MSVC 文件夹下找到最新的版本目录）。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;该目录下的 DLL 是 VS2022 自带的，与你的编译环境完全匹配，最可靠。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;系统目录（备用，若 VS 目录中找不到）：64 位 DLL 在 C:\Windows\System32\（注意：64 位系统中 System32 存放 64 位文件，SysWOW64 存放 32 位文件）。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;步骤 3：复制 DLL 到程序目录（与 .exe 同目录）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;将步骤 2 找到的所有 VC 运行库 DLL（如 MSVCP140.dll 等）复制到你的程序 .exe 所在的文件夹，与 Qt 的 DLL（如 Qt6Core.dll、Qt6Widgets.dll 等）放在一起。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;示例目录结构：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;plaintext&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;你的程序文件夹/&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;├─ 你的程序名.exe&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 主程序&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;├─ MSVCP140.dll&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# VC 运行库 DLL&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;├─ VCRUNTIME140.dll&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# VC 运行库 DLL&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;├─ VCRUNTIME140_1.dll&amp;nbsp; &amp;nbsp; &amp;nbsp;# VC 运行库 DLL&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;├─ CONCRT140.dll&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # VC 运行库 DLL&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;├─ Qt6Core.dll&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # Qt 核心 DLL（通过 windeployqt 生成）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;└─ ...（其他 Qt 依赖 DLL）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;步骤 4：验证是否成功（在干净环境测试）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;为确保打包有效，需在 未安装 vc_redist.x64.exe 的电脑 / 虚拟机 中测试：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;将整个程序文件夹复制到目标电脑；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;双击 .exe 运行，若能正常启动且无 “缺失 DLL” 错误，则成功；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;若仍报错 “缺少 XXX.dll”，说明漏复制了依赖的 DLL，回到步骤 1 重新检查 dumpbin 输出，补充缺失的 DLL 即可。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;关键注意事项&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;版本必须严格匹配：提取的 DLL 版本必须与你的 VS2022 版本一致（例如 VS2022 对应 VC143 版本，DLL 版本号需匹配），否则可能出现 “应用程序无法启动” 或运行时崩溃。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;64 位 / 32 位不可混用：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;若你的程序是 64 位编译（项目配置为 x64），必须提取 64 位 DLL（来自 x64 目录）；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;若为 32 位（x86），需提取 32 位 DLL（VS 目录中 x86 子文件夹，或系统 SysWOW64 目录）。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;许可合规：微软允许随程序打包这些 DLL，但不可单独分发（必须与你的应用程序一起），需遵守 VC 运行库许可条款。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;Qt 依赖仍需处理：此方法仅解决 VC 运行库依赖，Qt 本身的 DLL 需通过 windeployqt 工具生成（在 VS 命令提示符中执行 windeployqt 你的程序名.exe，会自动复制所需的 Qt DLL）。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;通过以上步骤，即可手动打包 VC 运行库 DLL，让程序在未安装 vc_redist.x64.exe 的电脑上正常运行，无需用户额外安装运行库。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Thu, 30 Oct 2025 09:30:57 +0800</pubDate></item><item><title>uniapp开发抖音小程序监听键盘弹起keyboardheightchange，并获取键盘高度</title><link>https://www.vtotop.com/post/10.html</link><description>&lt;p&gt;今天用 Uniapp 开发抖音小程序，有个核心需求：点击输入框时，键盘弹起后能自动 “顶起” 输入框，避免输入框被键盘遮挡。这就需要实时监听到键盘高度，再把高度设给输入框的样式 —— 说起来简单，实操时却踩了不少坑。&lt;/p&gt;&lt;p&gt;一开始想当然用了 Uniapp 的onKeyBoardHeightChange API，结果在抖音端根本没反应。查了下才知道，抖音小程序压根不支持这个接口，白忙活一场。&lt;/p&gt;&lt;p&gt;接着问 AI，得到的答案翻来覆去还是叫我用onKeyBoardHeightChange，看来它也没吃透抖音的特性。没办法，只能自己啃抖音小程序文档，还真发现 input 组件有个bindkeyboardheightchange事件，专门用来监听键盘高度变化 —— 本以为找到救星，结果直接用上去，事件死活不触发，又卡壳了。&lt;/p&gt;&lt;p&gt;那阵子真有点想放弃，去 GitHub 和 Uniapp 插件市场翻了个遍，也没找到能直接获取抖音键盘高度的第三方库。&lt;/p&gt;&lt;p&gt;最后抱着死马当活马医的心态，试了试在绑定bindkeyboardheightchange时，配合this.$nextTick延迟初始化 —— 没想到，成了！&lt;/p&gt;&lt;p&gt;关键代码（template 部分，重点看keyboardheightchange的绑定）：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-cpp&quot;&gt;&amp;lt;!--&amp;nbsp;核心是通过keyboardheightchange监听，配合nextTick确保事件能触发&amp;nbsp;--&amp;gt;
&amp;lt;input&amp;nbsp;
&amp;nbsp;&amp;nbsp;v-model=&amp;quot;inputVal&amp;quot;
&amp;nbsp;&amp;nbsp;@keyboardheightchange=&amp;quot;handleKeyboardHeightChange&amp;quot;
&amp;nbsp;&amp;nbsp;placeholder=&amp;quot;请输入内容&amp;quot;
/&amp;gt;&lt;/pre&gt;&lt;p&gt;折腾了一圈才发现，抖音小程序的事件触发时机比较特殊，有时候确实需要用nextTick等 DOM 更新完再绑定，才能稳稳监听到键盘高度。总算解决了，记录一下免得下次再踩坑。&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-cpp&quot;&gt;handleKeyboardChange(e)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.$nextTick(()&amp;nbsp;=&amp;gt;&amp;nbsp;{
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;console.log(&amp;quot;弹起了！&amp;quot;,&amp;nbsp;e);&amp;nbsp;
		this.changeKeyBordHeight(e.detail.height)&amp;nbsp;//键盘的高度就是e.detail.height，这里进行设置输入框的高度，函数自己实现即可
	})
}&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Mon, 27 Oct 2025 06:28:28 +0800</pubDate></item></channel></rss>