草庐IT

non-main

全部标签

windows - 使用 GUI 创建 Windows 程序但使用 'main()'(在 D 中)?

是否有可能在Windows中创建一个GUI程序,它的入口点在“main()”中?我该怎么做呢?我对此的用途是我想要一个具有统一入口点的跨平台应用程序。 最佳答案 使用main()编写您的应用程序,并在其中调用您将在WinMain中使用的所有GUI调用。这将创建一个同时具有GUI和控制台窗口的应用程序。使用WindowsSDK工具editbin/SUBSYSTEM:WINDOWSappname.exe更改PEheader中的子系统标志,这样Windows就不会自动创建控制台窗口。如果你想为调试消息或类似的东西使用一个有效的stdout

c++ - Qt 如何设法将 main() 用于 Windows 中的非控制台应用程序?

正如Microsoft自己解释的那样,控制台程序使用main(),但非控制台Win32程序使用WinMain()作为入口点。事实上,在VisualStudio的Win32项目中使用main()会导致链接器错误。但是在Qt项目中,无论是从QtCreator还是VisualStudio创建的,GUI程序都像控制台程序一样使用main()。Qt人员如何做到这一点? 最佳答案 Qt使用WinMain()definedinqtbase/src/winmain/qtmain_win.cpp,随后calls我们的“虚构”intmain(intar

WooCommerce在woocommerce_before_main_content中添加动作

我想添加woocommerce_catalog_ordering就在我的店长Div之前的动作。这将在我的容器div之后添加。由于我的自定义HTML不是像WooCommerce所内置的那样的动作,因此我不确定如何订购两者。functionshop_page_header(){get_template_part('elements/header-nav');remove_action('woocommerce_before_shop_loop','woocommerce_catalog_ordering',30);//RemovetheresultcountfromWooCommerceremov

java - 卡夫卡 : could not find or load main class installation Windows

我正在尝试在我的计算机上安装ApacheKafka。我下载了最新版本2.12-2.0.0。我想在Windows上运行它,在我收到的\bin\windows目录中键入“.\zookeeper-server-start.bat../../config/zookeeper.properties”后:错误:无法找到或加载主类Files\Java\jdk-10.0.1\lib;C:\Program引起:java.lang.ClassNotFoundException:Files\Java\jdk-10/0/1\lib;C:\ProgramJava在我的电脑上正常运行java-version:op

c++ - MinGW C++ : Reading a file with non-ascii file name

简单任务:我想读取一个文件名不是ascii的文件。在linux和MacOS上,我只是将文件名作为UTF-8编码字符串传递给fstream构造函数。在Windows上,这会失败。正如我从thisquestion中了解到的那样,windows根本不支持utf-8文件名。但是,它提供了一个自己的非标准open方法,该方法采用utf-16wchar_t*。因此,我可以简单地将我的string转换为utf-16wstring并且没问题。然而,在MinGW标准库中,fstream的wchar_t*open方法根本不存在。那么,如何在MinGW上打开一个非ascii文件名?

windows - main(int argc, char** argv) 的荒谬值

我在旧的C++项目上启动了一个控制台应用程序。在main(intargc,char**argv)中设置断点开始program.exe-debug。根据调试器,argc变为32,argv中的字符串具有奇怪的随机值。继续执行时发生访问冲突,因为argv中的字符串指向无效值。这可能是什么原因造成的? 最佳答案 链接器设置了错误的入口点。对于普通的控制台应用程序,这应该是mainCRTStartup(调试器显示__tmainCRTStartup)。有一个无效的入口点导致main查看堆栈中“碰巧”的内容。发布这个是因为它不是很容易找到。

c# - "Compile with/main to specify the type that contains the entry point."

根据下面的代码,我收到以下消息。我相当确定我得到它的“原因”,我只是不知道如何重新排列代码以移动/删除/替换导致错误的语句之一。“使用/main编译以指定包含入口点的类型。”"staticvoidMain(string[]args)"下有一堆代码,我从http://support.microsoft.com/kb/816112为了从自动递增中获取ID,所以当其余代码填充Access数据库时,我可以让它自动递增。任何帮助表示赞赏。也欢迎使用更简单的代码获得结果的建议!namespaceWindowsFormsApplication1{publicpartialclassForm1:For

c# - 数字必杀技 : Where does a callvirt of a non-existent method end up?

我在其基类中标记为抽象的库类上调用属性集访问器。现在在运行时我force应用程序针对另一个版本的库运行,其中类仅实现基类的底层接口(interface),但不是从它派生的。有趣的是,.NET将运行代码,但设置该属性没有任何效果。幕后发生了什么?违规代码:MyDbParameterparam=newMyDbParameter();param.ParameterName="p";Console.Out.WriteLine("ParameterName:"+param.ParameterName);库2.0(已编译)publicsealedclassMyDbParameter:System.

c# - 为什么在 main() 退出之前调用 Dispose()?

我的.net服务通过在Main()循环退出之前的finallyblock中调用resourceName.Dispose()来清理其所有非托管资源。我真的必须这样做吗?我认为我不能因为进程正在结束而泄漏任何资源的想法是否正确?Windows将关闭所有不再使用的句柄,对吗? 最佳答案 实现IDisposable的对象可以封装的资源类型没有限制。IDisposable对象封装的绝大部分资源会在进程关闭时被操作系统清理,但有些程序可能会使用操作系统不知道的资源。例如,需要底层数据库不支持的锁定模式的数据库应用程序可能会使用一个或多个表来跟踪

c# - Lazy<T> 延迟加载错误 : A field initializer cannot reference the non-static field, 方法或属性

我第一次尝试使用延迟加载来初始化我的类中的进度对象。但是,我收到以下错误:Afieldinitializercannotreferencethenon-staticfield,method,orproperty.privateLazym_progress=newLazy(()=>{longtotalBytes=m_transferManager.TotalSize();returnnewProgress(totalBytes);});在.NET2.0中,我可以执行以下操作,但我更愿意使用更新的方法:privateProgressm_progress;privateProgressPro