标签: entry-point

有关汇编中汇编的汇编入口点的信息在哪里?

我曾经认为一个程序集只能有一个main()方法,直到我在哥本哈根的微软办公室的视频讲座中看到Jon Skeet的MiscUtil.

所以,我写了这个有两个main()方法的小应用程序,如下所示:

namespace ManyMains
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
            Console.ReadKey();
        }
    }

    class YetAnotherProgram
    {
        static void Main()
        {
            Console.WriteLine("Yet another program.");
            Console.ReadKey();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我在Visual Studio中设置了StartUp对象并且它有效.好吧,没有理由感到苦恼.然后,我想看看这个信息存储在程序集中的确切位置,所以我在反射器中打开了编译后的二进制文件,并且完全看不到这种效果的元数据.

我想知道是否将这种信息写入清单或PE图像的某些COFF标题中,这些标题在反汇编程序中无法看到但可以在十六进制编辑器中看到?

c# reflection assemblies entry-point

2
推荐指数
1
解决办法
1893
查看次数

Objective-C中应用程序的入口点

我在Xcode中开始了一个新的iOS项目.文件 - 新建 - SingleViewApp

然后我选择了以下文件

在此输入图像描述

并搬到垃圾桶.然后我从Info.plist文件中删除了以下键: 在此输入图像描述

然后,我添加了一个名为C文件main.c中 的含量的main.c文件是:

int main(int argc, char * argv[]) {

        print("hello");
}
Run Code Online (Sandbox Code Playgroud)

而且这很有效,应用程序编译并运行并向控制台写"hello".我的问题是:不是main.m(而不是main.c)被认为是应用程序的入口点吗?

objective-c entry-point

2
推荐指数
1
解决办法
1389
查看次数

如何从python脚本设置argparse参数

main在包的setup.py内部指定了一个函数作为入口点,该函数使用该argparse包来传递命令行参数(请参见此处的讨论):

# file with main routine specified as entry point in setup.py
import argparse
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('a', type=str, help='mandatory argument a')
    args = parser.parse_args()
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想main在软件包的测试中使用此处建议的相同功能。在后一种情况下,我想main从测试类中调用函数,并在函数调用之前设置(某些)命令行参数(否则会由于缺少参数而失败)。

# file in the tests folder calling the above main function
class TestConsole(TestCase):
    def test_basic(self):
        set_value_of_a()
        main()
Run Code Online (Sandbox Code Playgroud)

那可能吗?

python entry-point setup.py argparse

2
推荐指数
1
解决办法
3076
查看次数

不同语言的切入点

我知道在C/C++和Java中,程序的入口点就是函数main(),
现在我有以下两个问题,

  1. 用MASM,NASM和其他语言编写的程序入口点是什么?

  2. 什么是CPU知道在哪里找到程序入口点的惯例?

== - 编辑 - ==

问题2不是一个有意义的问题,因为CPU负责找到入口点是错误的.没有这样的惯例.见Eric Lippert澄清.

c assembly programming-languages entry-point

1
推荐指数
1
解决办法
670
查看次数

mainCRTStartup的签名是什么

我正在寻找mainCRTStartup的签名.是吗 :

int mainCRTStartup( int argc, char *argv[] )
Run Code Online (Sandbox Code Playgroud)

或者是其他东西 ?

我发现它太刺激了,微软甚至无法给出他们自己的入口点的定义......

谢谢你的帮助.

c windows winapi entry-point visual-studio

1
推荐指数
1
解决办法
806
查看次数

python入口点没有模块名称__main__

我一直在尝试为我的项目设置一个新的入口点而不是 cli,我想启动 main()。我已经尝试了 setup.py 中的几种变体,当使用 pip3 安装时,似乎无法正确导入 main

这是 setup.py 中的入口点代码(请注意,旧的 # 代码之前通过单击 CLI 工作过)

entry_points={
    'console_scripts': [
        'shenko = shenko.__main__:main',
    ],
},
# This was the old entry point to run shenko as command line
#entry_points={
#    'console_scripts': [
#        'shenko=shenko.cli:main',
#    ],
#},
Run Code Online (Sandbox Code Playgroud)

这是源代码; github代码,查看setup.py

这是我得到的最后一个回溯;

Traceback (most recent call last):
File "/home/shenko/.local/bin/shenko", line 5, in <module>
from shenko.__main__ import main
ModuleNotFoundError: No module named 'shenko.__main__'
Run Code Online (Sandbox Code Playgroud)

在 setup.py 中我尝试了以下代码;

'shenko = shenko.__main__:main'
'shenko = shenko:main'
'shenko = shenko.main:main' …
Run Code Online (Sandbox Code Playgroud)

python pip entry-point python-packaging

1
推荐指数
1
解决办法
2210
查看次数

如何在C#中使用C++编写的外部.dll资源上正确创建入口点

长时间读者,第一次海报.有一天,我希望在这里回答问题......

所以它类似于:"无法在dll中找到名为[function]的入口点"(c ++到c#类型转换)

但我似乎无法应用相同的解决方案......

基本上,我写了一个新的方法:

在C++项目的头文件中定义为:

extern "C" {
     __declspec(dllexport) bool IsDataValid();
}
Run Code Online (Sandbox Code Playgroud)

在C++项目的源文件中定义为:(仅限signiature)

extern bool __cdecl IsDataValid() { 
//function stuf......... returns a bool
}
Run Code Online (Sandbox Code Playgroud)

导入C#项目中的表单C#应用程序:

[DllImport("CarChipSDK_C_Sharp.dll", EntryPoint = "IsDataValid")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool IsDataValid();
Run Code Online (Sandbox Code Playgroud)

它是从C#表单.cs文件中的同一个地方调用的:

bool isDataValid = IsDataValid();
Run Code Online (Sandbox Code Playgroud)

它返回一个带有消息的异常:

"无法找到DLL'CarChipSDK_C_Sharp.dll'中命名的入口点'IsDataValid()'.

我在从c ++代码生成的.dll上使用了dumpbin.exe和dependency walker,它显示它具有IsDataValid()入口点.

非常感谢所有帮助......

问题解决了!愚蠢的我,这是我现在公司以前的合作社的代码,结果他正在从bin/release文件夹中读取.dll,我正在构建bin/debug文件夹.应该知道的.真诚的道歉.

c# c++ dll entry-point

0
推荐指数
1
解决办法
3421
查看次数

main()函数无法识别

我正在为我正在上课的代码编写代码.我不能发布我的所有代码而不归零我的项目得分,但这里是我的驱动程序的缩写代码:

    #pragma once
    #include <iostream>
    #include <fstream>
    #include <string>
    #include "Stack.h"

    using namespace std;

    namespace jack
    {
        int high(char a)
        {
            // My Code
        };

        bool isSameOrHigher(char top, char cur)
        {
            // My Code
        };

        int main()
        {
            // My Code
        };
    };
Run Code Online (Sandbox Code Playgroud)

由于某种原因,我无法弄清楚何时编译此代码,我收到以下错误:

链接:致命错误LNK1561:必须定义入口点

现在,据我所知,只有当我没有主要功能时才会出现这个错误,你可以看到我确实有这个功能.我已经尝试将此文件中的代码复制到另一个项目中,我已经尝试将我的main函数单独分离到另一个cpp文件中(导致更多错误并且没有修复入口点错误),我尝试过 - 安装Visual C++ express并从头开始.我的老师和我在main()之前检查了这个文件中的所有代码(以及我编写和包含的Stack.h文件中的所有代码),并且没有任何丢失的括号,分号或任何其他标点符号.我不知道还有什么可以尝试的.思考?

c++ program-entry-point compiler-errors entry-point language-lawyer

0
推荐指数
2
解决办法
1055
查看次数

无法找到入口点 Fortran Dll

继续关于 dll 的最后一个未解决的问题,我尝试使用 g95 使用以下命令创建 fortran dll:

g95 -c FCall.f90

g95 -shared -mrtd -o FCall.dll FCall.o

当我将它链接到 VB 时,它显示“无法在 DLL 'C:\Users\Hp\Documents\Visual Studio 2010\Projects\WindowsApplication5\WindowsApplication5\FCall.dll' 中找到名为 'FortranCall' 的入口点。”

这是 FORTRAN 代码:

  SUBROUTINE FortranCall (r1, num)

 !DEC$ ATTRIBUTES DLLEXPORT :: FortranCall

 !DEC$ ATTRIBUTES ALIAS:'FortranCall' :: FortranCall

   REAL,INTENT(IN) :: r1          
   REAL,INTENT(OUT) :: num

   num = MOD (r1, 256.0)

 END SUBROUTINE
Run Code Online (Sandbox Code Playgroud)

这是VB代码:

   Private Sub Command1_Click()

   r1 = 456.78

   Call FortranCall(r1, Num)

   Text1.Text = Str$(Num)

   End Sub
Run Code Online (Sandbox Code Playgroud)

VB中的模块代码:

Declare Sub FortranCall Lib"C:\Users\Hp\Documents\Visual Studio 2010\Projects\WindowsApplication5\WindowsApplication5\FCall.dll" (r1 As …

dll fortran visual-studio-2010 entry-point

0
推荐指数
1
解决办法
1017
查看次数

"未找到主要方法"错误 - 此代码中缺少什么?

我只是重新阅读我的讲座脚本并在那里试用代码.问题是教授只给了我们代码片段,我真的坚持这个.我在Eclipse中不断收到此错误:

没有主要方法

即使我public static void main(String[] args)输入代码,我仍然会收到错误.我应该改变什么呢?

该程序的主要思想是计算平方根或平方根.

public class MeineKlasse {

    private String job;

    private String getJob() {
        return job;
    }

    public void setJob(String job) {
        this.job = job;
        System.out.println(job);
    }

    public double myMethode(double x) throws Exception {
        if (job.equals("quadrat")) 
            return x * x;
        if (job.equals("wurzel")) 
            return Math.sqrt(x);
        System.out.println(myMethode(x) + "=");
        throw new Exception("Fehler:Aufgabe nicht korrekt definiert"); 
    }
}
Run Code Online (Sandbox Code Playgroud)

java methods program-entry-point entry-point

-3
推荐指数
1
解决办法
2970
查看次数