我想我的问题是这样的 - 如何将exe位置的目录作为LPCWSTR获取,以便我可以将其输入到我的代码中
#include <iostream>
#include <Windows.h>
int main(int argc, char **argv)
{
WIN32_FIND_DATA a;
HANDLE swap = FindFirstFile(/*(LPCWSTR)__exe_directory__*/,&a);
if (swap!=INVALID_HANDLE_VALUE)
{
do
{
char *sptn = new char [lstrlen(a.cFileName)+1];
for (int c=0;c<lstrlen(a.cFileName);c++)
{
sptn[c]=char(a.cFileName[c]);
}
sptn[lstrlen(a.cFileName)]='\0';
std::cout<<sptn<<std::endl;
}
while (FindNextFile(swap,&a));
}
else std::cout<<"undetected file\n";
FindClose(swap);
system("pause");
}
Run Code Online (Sandbox Code Playgroud)
它会返回目录中列出的文件而不会出错.我知道我的代码已经在给定目录的情况下工作,我已经测试了它.
是否可以使用&C/C++中调用的内容为指针指定参数?
基本上我要说我有一个功能:
int vba (unsigned long *a, unsigned long *b){.....}
Run Code Online (Sandbox Code Playgroud)
我可以使用这个神秘的&调用向参数声明非指针值吗?我正在读这本书,而作者正在使用它,但他没有宣布它是什么,或者它是什么.我搜索了"& C++ call",但我没有得到任何结果.
那么他指定一个非ptr赋值在其他函数中使用它,如下所示:
int vca ()
{
unsigned long c, d;
vba(&c, &d);
//etc ...
}
Run Code Online (Sandbox Code Playgroud)
这是我感到困惑的地方,我不知道刚刚发生了什么,或者那个叫做的是什么,他是如何分配一个非指针的指针......虽然我以前从未听说过它,但看起来非常棒.任何人都在想详细说明这是什么,或者它是如何可能的?
此外,当我把它放入我的代码时,它在错误日志中说:"Intellisense:identifier"amp未定义"?这是我真正丢失的地方,因为编译器amp以蓝色突出显示调用,那么它是如何未定义的?
我的主程序有一个问题,在运行程序后我打开的所有调用之后它才打开然后关闭.它在我的代码或任何东西中都没有发现任何错误,所以我尝试创建一个新项目并且它做同样的事情没有错误.
我甚至试过示例代码:
int APIENTRY WinMain (HINSTANCE ...)
ShellExecute(NULL, (LPCWSTR)"open", (LPCWSTR)"cmd.exe", NULL, NULL, SW_SHOW);
Run Code Online (Sandbox Code Playgroud)
它仍然只是打开和关闭.这是什么问题?如有必要,我可以提供输出日志,但我不知道.