C# 从C++调用C++“int WINAPI p>我可以在C++中使用C++方法从C++ DLL中访问一个方法: extern "C" { __declspec(dllexport) void DisplayHelloFromDLL() { printf ("Hello from DLL !\n"); } }

C# 从C++调用C++“int WINAPI p>我可以在C++中使用C++方法从C++ DLL中访问一个方法: extern "C" { __declspec(dllexport) void DisplayHelloFromDLL() { printf ("Hello from DLL !\n"); } },c#,c++,C#,C++,这非常有效……但我正在使用的解决方案将此作为切入点: extern "C" int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR lpCmdLine, int /*nShowCmd*/) 有没有一种方法可

这非常有效……但我正在使用的解决方案将此作为切入点:

extern "C" int WINAPI _tWinMain(HINSTANCE hInstance,
                                HINSTANCE /*hPrevInstance*/,
                                LPTSTR lpCmdLine,
                                int /*nShowCmd*/)
有没有一种方法可以像使用_declspec方法那样访问此文件


欢呼

这不是DLL入口点,而是主要应用程序入口点。您需要通过CreateProcess将其创建为新进程。

这不是DLL入口点,而是主要应用程序入口点。您需要通过CreateProcess将其创建为一个新进程。

\u tWinMain实际上是WinMain或wWinMain的定义。您还需要确保它已实际导出

也就是说,为什么DLL会有WinMain函数呢?您应该只导出一个普通函数,如DisplayHelloFromDLL

[编辑]

正如@DeadMG所说,您试图引用的项目(带有_tWinMain的项目)是一个EXE。您不应该像对待DLL那样尝试从C导入它的函数;相反,您应该使用启动它。

\u tWinMain实际上是WinMain或wWinMain的定义。您还需要确保它已实际导出

也就是说,为什么DLL会有WinMain函数呢?您应该只导出一个普通函数,如DisplayHelloFromDLL

[编辑]


正如@DeadMG所说,您试图引用的项目(带有_tWinMain的项目)是一个EXE。您不应该像对待DLL那样尝试从C导入它的函数;你应该启动它。

< p>答案是调用C++中使用的函数:

extern "C"
{
  __declspec(dllexport) void StartAgent()
  {
    printf ("Starting Agent... \n");

    StartServer(true);
    RunMainLoop();
  }
}
然后,使用以下命令在C中调用此命令:

[DllImport("myDll.dll")]
public static extern string StartAgent();

StartAgent();

从C++调用C++,并使C++运行应用程序。

< P>答案是调用C++中使用的函数:

extern "C"
{
  __declspec(dllexport) void StartAgent()
  {
    printf ("Starting Agent... \n");

    StartServer(true);
    RunMainLoop();
  }
}
然后,使用以下命令在C中调用此命令:

[DllImport("myDll.dll")]
public static extern string StartAgent();

StartAgent();

从C调用C++并运行应用程序。< /P> OK,我怎样才能进入这个DDL启动它?我应该在这里指出,我在使用C++方面没有任何经验好的,我如何进入这个ddl来启动它?我要指出的是,我在使用C++方面没有经验。