私のプログラムに問題があります。私はそれについて前に質問しましたが、誰も私の問題を本当に理解していなかったので、今度は新しいアプローチを試しています。C++ #define LPWSTR?
私のプログラムは
char* argv[]
の形で引数をとり、そして、argv[1]
はLPWSTR
を使用して上にあるものは何でもへのポインタを作成する問題が発生したイムにそれが唯一のポイントになったのは:あなたは好奇心旺盛であればが、これは私の問題です
const wchar_t*
オブジェクト。
これは私の問題を解決しようと新しいものイムですが(私は複数のものを試してみたが、私は何イム思考、またはその可能な場合の対処方法を知っておく必要があります)
Basiclyが、私の考えがあります#define
には、argv[1]
にある何らかの種類の関数があり、その値でconst wchar_t*
が定義されています。このような
何か:
#define path ((const wchar_t*)argv[1])
イムわからないことが正しい方法である(あるいはこれが可能であっても)私はやりたいし...
あなたはアニー良くしている場合私の問題を解決する方法は、(どうか)私に方法を教えて、私を助けてください、私はこれについて本当に長い時間を考えてきました!
私のプログラムの説明:
イム引数をrecievesプログラムを作ります。引数はドライブの名前です(例: "F:")。次に、ドライブ文字と共に関数
CreateFile
を使用します。もしあなたがhereに行き、関数の最初のパラメータを見ると、私はあなたが何を意味するのか見ることができると思います....問題は、LPWSTRを作るためには、const wchat_t *オブジェクトが必要です。私の質問が今回はっきりしていることを願って、最後に人々は本当に何をしようとしているのか理解しませんでした。
感謝! EDIT 1:ここでは私のプログラムの行を(これは、引数なしで、私はそれを動作させるためにしなければならない方法です)を解決している
int main()
{
HANDLE device;
device = CreateFile(L"\\\\.\\F:", // Drive to open
GENERIC_READ | GENERIC_WRITE, // Access mode
FILE_SHARE_READ | FILE_SHARE_WRITE, // Share Mode
NULL, // Security Descriptor
OPEN_EXISTING, // How to create
0, // File attributes
NULL);
}
これは(doesnの引数である」(私はここでは固定値を使用しました)トン作業は)
int main(int argc, char* argv[])
{
HANDLE device;
device = CreateFile(argv[1], // Drive to open
GENERIC_READ | GENERIC_WRITE, // Access mode
FILE_SHARE_READ | FILE_SHARE_WRITE, // Share Mode
NULL, // Security Descriptor
OPEN_EXISTING, // How to create
0, // File attributes
NULL); // Handle to template
}
^これはイム
EDIT 2をやろうとしているものを示しています。私はCreateFileA
にCreateFile
を変更し、これはそれが私に与えeroorコードです(ドライブDは、USBは、あるそのハードドライブではない)
私はパスを入力する間違った方法を入力しない限り、それは常に私にerrosを与えます。私は病気が別の方法で問題を解決しようとしていると思う、あるいは誰かがなぜthoesのエラーが起こっているのか知っていたら、教えてください!
あなたのプログラムのコードを投稿できますか?私はそれがあなたの主な機能の最初の数行だと思います。 – kennyzx
@kennyzx確かに、編集 – jeyejow
多分マクロは最高の方法ではありませんhttps://stackoverflow.com/questions/14041453/why-are-preprocessor-macros-evil-and-what-are-the-alternatives – ldgorman