我想不通这个。我有一个完全按预期在调试模式下工作的 c++ 应用程序:
#include "stdafx.h"
#include <string>
#include <Windows.h>
#include <iostream>
using namespace std;
void truncateServer(std::string inString);
int _tmain(int argc, char *argv[])
{
char* server = argv[1];
truncateServer(server);
}
void truncateServer(std::string inString)
{
std::string server = "";
int whackCount = 0;
for (unsigned int i = 0; i < inString.length(); i++)
{
char c = inString[i];
if (whackCount < 3)
{
if (c == '\\') whackCount++;
else
server += c;
}
}
cout << server;
}
例如,如果我\\serverName\Share\
在调试中通过它的 UNC 路径调用我想要的服务器,它会给出我想要的东西:servername
但是,如果我使用发布版本,我什么也得不到:
我删除了发布输出文件夹,但问题完全相同。我只能假设发布和构建应用程序之间存在其他一些差异,这暴露了我的代码的主要问题?或者我需要考虑的输出之间的另一个差异。
我需要做什么才能获得预期的输出?