我想传递一个FILE *到另一个函数。 在这个函数中,使用fread从文件中读取一些字节。 没有写作是执行。 我想知道如果我应该说 void DoSomething(FILE *uFile) 要么 void DoSomething(const FILE *uFile) 我害怕引入一个内存泄漏的地方,并认为可能const更安全。 我担心该function可能会创build一个文件的副本,所以当我通过它不正确的。 我创buildFILE *如下所示: FILE *outfile = fopen("c:\\myfile.dat", "wb"); 谢谢。
是否有可能将多个parameter passing给beginthreadex? 我知道我可以创build一个类或结构,但是如果我有不相关的数据,我不想把它们合并成一个类或一个结构呢? Boost库似乎允许多个参数,但是我将如何为标准c ++ _beginThreadEx做多个参数? #include <iostream> #include <process.h> unsigned __stdcall myThread(void *data) { //C:\dev\default threads\_threads.cpp|6|error: invalid conversion from 'int*' to 'int' [-fpermissive]| int *x = static_cast<int*>(data); //int *x = (int*)data; std::cout << "Hello World! " << x; } int main() { int x = 10; _beginthreadex(NULL, 0, myThread, &x, 0, NULL); while(true); }
您好我有一个线程,使用几个variables。 variables在运行时由argv []确定。 我的select,我看到他们: 使variables全局,以便线程可以使用它们(不需要保护它们,因为线程不会改变它们)。 我不愿意使用这个,因为全局variables不太好 创build一个结构来保存variables并将其传递给线程。 varibales并没有真正相关,所以它将是一个“强制”的结构,除了线程的参数之外没有任何意义。 也比选项1更复杂 还有其他的select吗? 哪一个被认为更好? 谢谢 !
我有MS Office 64位的64位窗口10。 我试图让VBA for PowerPoint加载和执行一个自写的64位窗口DLL中的函数。 问题是我无法从VBA传递一个string到Windows DLL。 在各种网站上有许多讨论,但我没有find一个工作。 我尝试了两种方法,但都没有成功。 如果我使用调用DLL的C ++应用程序,我没有问题。 方法1: 该DLL: extern "C" { __declspec(dllexport) long jaadd(long a, long b, LPCWSTR strg) { MessageBoxW(NULL, strg, L"DLL", MB_OK); return a+b; } } 在VBA中: Private Declare PtrSafe Function jaadd Lib "D:\\Visual Studio 2017\\Projects\\PopUpDLL\\x64\\Debug\\PopUpDLL.dll" _ (ByVal arg1 As Long, ByVal arg2 As Long, ByVal lParam […]
平台:Windows 7,Windows XP软件:DOS 我知道命令行长度的限制,但我从来没有经历过这样的事情“。我有doskey命令传递参数/参数给vbs脚本,我已经确定,如果我尝试传递string与空间超过6个空格 – 超过6空间被截断。这是已知的限制吗? 下面是doskey的样子: set scripts=C:\Windows\Scripts\ doskey tt=@echo off $t cscript //NoLogo %scripts%tt.vbs %scripts% $1 $2 $t @echo on 现在你可以打开批处理并通过input简单的string来testing它: tt + "1 2 3 4 5 6 7 8 9" 结果将是: 1 2 3 4 5 6 长度无关紧要,我可以用任何其他的string来testing它,它会在第6个空格之后被截断。 有人有想法或知道解决scheme吗?
我正在创build一个Windowsbatch file,这将允许我通过创build具有.bak扩展名的文件副本来使用特定文件扩展名来备份特定位置中的文件。 例如,如果我要为工作batch file提供参数“C:\ Test&Folder”(在本例中只包含一个名为MyWork.laz的文件)和“.laz”,它将切换到正确的驱动器,查看指定的文件夹,在名为MyWork.laz.bak的同一文件夹中创buildMyWork.laz的副本,然后切换回从批处理启动的驱动器。 目前代码如下所示: set EXTEN = *%~2% %~d1 cd "%~f1" FOR %%I IN %%EXTEN DO COPY %%I %%I.bak %~d0 但是,当batch file到达第4行时,会输出以下错误: %EXTEN was unexpected at this time. 第四行是如何被Windows解释的(我使用“.bak”作为第二个参数): FOR %I IN %EXTEN DO COPY %I %I.bak 由于我是Windows批处理编程的新手,我对此的研究还没有产生任何效果,所以我会很感激任何的build议或帮助。
如果我知道它的帧指针和返回地址,有没有办法知道发送给函数的参数的分配空间的大小? (最好不要使用debugging符号)
在我的操作系统没有msg.exe ,我试图模仿使用cmd.exe的popup消息框。 但是我遇到的是让我感到无聊的事情。 我的最终目标是以编程方式使用.vbs脚本和schtasks.exe在任务计划程序中创build一个popup式提醒。 我有的问题是,如果我在batch file中运行以下: start "Alert" cmd.exe /t:f0 /k "mode con: cols=40 lines=10 & echo *** Message goes here *** & echo. & echo. & echo. & echo. & echo. & echo. & echo. & echo Press any key to exit & pause>nul" 我得到所需的结果,但是,如果我将/k参数更改为/c (原始脚本中的预期),选定的前景/背景颜色无法正确显示… 我通过将脚本更改为: start "Alert" cmd.exe /c "mode con: cols=40 […]
关于%*,有很多关于batch file参数的问题和回答,但我还没有find答案。 在batch file中是否有等效的语法,可以在unix中执行与“$ @”相同的行为。 一些背景: @echo off set MYPATH=%~dp0 set PYTHON=%MYPATH%..\python\python set BASENAME=%~n0 set XTPY=%MYPATH%..\SGTools\bin\%BASENAME%.py "%PYTHON%" "%XTPY%" %* 这是使用代理来调用python脚本的.bat文件。 所以我把所有的参数(脚本名除外)传递给python脚本。 这工作正常,直到有一个参数在引号和/或包含空格。 在shell脚本中,您可以使用“$ @”来获取每个参数并将其放在引号中。 有什么我可以做的复制这个过程? 示例呼叫: xt -T sg -t "path with possible spaces" -sum "name with spaces" -p <tool_name> -o lin32 lin64 win32 <lots of other options with possibilities of spaces> 命令/文件xt只包含上面列出的代码,因为实际的可执行文件是在不同文件夹中的Python代码。 所以重点是创build一个自包含的包,其中只有1个目录(xbin目录)添加到您的path。
我需要通过点击一个html链接从本地用户的文件系统运行一个程序。 当我使用这个 <a href="C:\Windows\System32\NETSTAT.EXE">CLICK</a> 它工作正常。 但是当我尝试传递参数到exe文件失败。 <a href="C:\Windows\System32\NETSTAT.EXE -a">CLICK</a> 任何人都有一个想法如何传递参数? 谢谢 UPDATE 使用这个如下:如果在系统中有新的logging可用,在线系统发送电子邮件给用户。 因此,用户将点击他们的电子邮件客户端的链接 ,将打开他们的本地EXE程序与所需的参数,以显示新的logging。 我不想用bat文件发送邮件,因为我的networkingpipe理员不允许。