私はこれを理解することはできません。期待どおりにデバッグ モードで動作する 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
ただし、リリース ビルドを使用すると、何も得られません。
リリース出力フォルダを削除しましたが、問題はまったく同じです。リリース アプリケーションとビルド アプリケーションの間に、私のコードに重大な問題を引き起こしている他の違いがあるとしか思えませんか? または、説明する必要がある出力間の別の違い。
期待される出力を得るために何をする必要がありますか?