C ++プログラムはマップされたドライブを見ることができません

mapped-drive
C ++プログラムはマップされたドライブを見ることができません

Visual Studio 2010を使用して、Windows 7でアンマネージC ++コンソールアプリケーションをコーディングしています。 ローカルコンピューターまたはネットワーク上の場所にあるファイルが正常に機能する問題に遭遇しましたが、マップされたドライブにコードが表示されません。 この問題は、次の2行のプログラムに対して簡単に実行できます。

const WCHAR * libPath = _T( “L:\ MyFiles \ myfile.txt”); DWORD fa = GetFileAttributes(libPath);

faが0xFFFFFFFFとして返される場合、Lはマップされたドライブであり、L:\ MyFiles \ myfile.txtは有効なテキストファイルです。

マップされたドライブにアクセスするにはどうすればよいですか?

  1  0


ベストアンサー

これはVisual Studioの問題です。 「デバッグなしで開始」は、Windows 7でエクスプローラーから実行するのと同じではありません。 このプログラムは、Windowsエクスプローラーから正常に起動します。 これは、UACの権利が異なるためです。

0


1つの可能性は、アプリケーションが昇格モードで実行されていることです(つまり、 「管理者として実行」が選択されている場合)。 この問題については、http://www.winability.com/how-to-make-elevated-programs-recognize-network-drives/ [こちら]で詳しく説明しています。

解決策は、「net use」を使用してドライブをマウントするか、これをレジストリにマージすることです。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"EnableLinkedConnections"=dword:00000001

上記の変更を行った後、再起動が必要であることに注意してください。

0


タイトルとURLをコピーしました