我可以在ASP.NET web应用程序中使用未编译的C++代码吗

Can I use uncompiled C++ code in ASP.NET web application?

本文关键字:编译 C++ 代码 ASP NET web 应用程序 我可以      更新时间:2023-10-16

我有一个问题,希望你能帮我解决。

我创建了ASP.NET 4.0 web应用程序。我还在其他应用程序中生成了.cpp文件。这个.cpp文件包含函数,这些函数总是返回相同数量的变量,并且总是接受相同数量的参数。

我需要做的是能够在我的web应用程序中使用这些功能。

但真正的问题是,我需要能够在运行应用程序时替换这些功能。我的意思是管理员应该能够登录,上传新的cpp文件,这将用新的功能取代旧的功能。新的将具有相同的名称、参数和结果编号,但将以不同的方式进行计算。

有什么办法可以做到这一点吗?

谢谢你的帮助!MattheW

将cpp代码预编译到dll中,并让管理员上传dll。使用[DllImport(")]指令引用c#app中的dll。

C++将需要以某种方式进行编译。您可以在ASP.NET应用程序中使用用C++编写的已编译dll,但仍需要编译代码以使ASP能够使用它。

然后可以加载和卸载编译后的DLL,以适应对函数的更改。您甚至可以让ASP.NET服务器以某种方式编译该文件,但代码仍然需要可编译到DLL才能使其可执行。

您需要通过另一个dll公开C++代码。

第一选择是pinvoke。参见:

如何设置C++函数,以便p/invoke可以使用它?

这里也涵盖了它:http://msdn.microsoft.com/en-us/library/aa446538.aspx

从技术上讲,您也可以通过COM公开或在托管C++中写入,但如果您只是试图公开一些C++函数,那么这两种方法都是过度的。