所以假设我有一个java包....
它有主要方法的主类
然后它有一大堆其他类......
我的问题是,是否有可能从其他类中获取传递给main方法的args,这些类不是主类的一部分,而是在同一个包中...
我正在尝试恢复一个我意外删除并通过组织者设法完成的应用程序,但是,现在当我尝试在模拟器或iphone上运行它时,它崩溃并在main.m文件中弹出一个错误:
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
Run Code Online (Sandbox Code Playgroud)
该错误发生在"return UIApplicationMain(argc,argv,nil,NSStringFromClass([AppDelegate class]));"中 带有SIGABRT错误的文件部分.我正在使用带有ARC的Xcode 4.2.我在ios 4.3和ios 5.0上测试它.该应用程序之前和之前正在工作,现在正在应用程序商店中.什么都有帮助
在main调用之前执行代码绝对是可能的,正如本问题中的许多示例所示.
但是,如果在该主要代码之前,程序被告知通过std::exit或退出std::abort?既然main被定义为程序的开始,那么在开始之前退出会产生什么后果?
在每个部分打印一些东西后,我得到以下结果:
格式:
部分:output
Main:main
Init(在main之前调用):init
Exit(std::atexit在Init内部设置):exiting
样品运行:
在不退出的情况下调用Init:
init
main
返回0
Init调用std :: exit(0):
init
返回0
Init调用std :: abort:
init
崩溃并在Windows上返回3,GCC 4.7.2
崩溃,并在LiveWorkSpace上显示VS11 返回0 的常用框
Init设置处理程序并调用std :: exit(0):
init
退出
返回0
Init设置处理程序并调用std :: abort:
如果没有处理程序,初始化
相同
在搜索时,我看到了这样一个问题:在main()之前,C/C++程序有什么方法可以崩溃吗?.但是,它没有回答我想知道的事情:这种行为是在调用之前std::exit还是std::abort以前main定义好的?这种未定义的行为是什么?
我有一些软件的示例目录,其中包含多个具有多个main功能的文件.我可以将所有这些文件组装成单个项目,编译它们然后运行特定的文件而不会main already defined出错吗?假设我不想为每个cpp文件创建单独的项目.
UPDATE
我需要简单的一键式解决方案(如果存在).我不想在文件夹或重构文件内容之间分发文件.例如,在Eclipse/Java中,您可以右键单击任何带有main的文件并运行它.并且在一个项目中可以有许多主文件.这可能是VisualStudio/CPP吗?
更新2
我知道C++不是Java,而Visual Studio不是Eclipse.我的问题是关于一些手动操作的自动化.
当您使用最新的 .NET Framework 创建新应用程序时,Program.cs 如下所示:
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddRazorPages();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
app.Run();
Run Code Online (Sandbox Code Playgroud)
如果您想知道 - 这实际上是整个文件。不public class Program; 不包括;没有构造函数。回到“那天”,这一切都被包含在Main名为 的类的函数中Program,如下所示:
public class Program
{
public async static Task Main(string[] args) …Run Code Online (Sandbox Code Playgroud) 我正在浏览一些Java源代码,并注意到该main方法未定义.
Java如何编译源代码而不知道从哪里开始?
我正在学习C#而且我对它很新,请原谅我这个看似愚蠢的问题.我有一些Java经验,我注意到C#程序main()在主类中也需要一个方法.
如果我想创建一个不是主类的类,即我导入主类的类,该怎么办?
我试图这样做,当我编译(通过cmd使用csc File.cs)时,编译器说它将生成的.exe没有main()方法.这是否意味着我错了,每个班级都需要一个main()方法,或者我错误地编译它?
也许是代码中的问题(因为我依赖于我对Java语法的了解),看起来像这样:
public class Class
{
int stuff;
public Class(int stuff)
{
this.stuff = stuff;
stuff();
}
public void method()
{
stuff();
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:我担心这是非常误解的.我不是在问这个文件是否需要一个main方法,我问我怎样才能把这个类导入到另一个类中,因为我意识到如果我要这样做我就不能有一个main(就像我说的那样,我有一些Java经验),但每当我尝试编译没有一个编译器告诉我,我需要一个.
我必须将两个参数传递给我的main方法.我的构建脚本是
// Apply the java plugin to add support for Java
apply plugin: 'java'
// In this section you declare where to find the dependencies of your project
repositories {
// Use 'maven central' for resolving your dependencies.
mavenCentral()
}
// In this section you declare the dependencies for your production and test code
dependencies {
compile 'com.example:example-core:1.7.6'
}
task main(type: JavaExec, dependsOn: classes) {
description = 'This task will start the main class of the example project'
group = …Run Code Online (Sandbox Code Playgroud) 在下面的代码示例中,main函数是使用C++ 11尾部返回类型表示法编写的:
auto main() -> int {
//...
return 0;
}
Run Code Online (Sandbox Code Playgroud)
题:
是否main应该避免使用尾随返回类型并且应该首选经典符号?
我在一个int main(int argc, char* argv<::>)也可以用作签名的网站上看到过main.令人惊讶的是,以下程序:
int main(int argc, char* argv<::>)
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编制输出GCC中的任何警告,以及铿锵声.它也用C++编译.
那么,它int main(int argc, char* argv<::>)是如何有效的签名main?