我有一个问题,希望你能帮助我。
我创建了ASP.NET 4.0 Web应用程序。我还在其他应用程序中生成了.cpp文件。此.cpp文件包含函数,这些函数始终返回相同数量的变量,并始终使用相同数量的参数。
我需要做的是能够在我的网络应用程序中使用此功能。
但真正的问题是我需要能够在运行app时替换这些功能。我的意思是管理员应该能够登录,上传新的cpp文件,这将取代旧的功能。新的将具有相同的名称,参数和结果编号,但将以不同的方式进行计算。
有什么办法可以实现吗?
感谢您的帮助! 马修
答案 0 :(得分:2)
将cpp代码预编译到dll中,然后让admin上传dll。使用[DllImport(“”)]指令从c#app引用dll。
答案 1 :(得分:1)
C ++需要以某种方式编译。您可以在ASP.NET应用程序中使用用C ++编写的已编译的dll,但仍然需要为ASP编译代码才能使用它。
然后可以加载和卸载已编译的DLL以适应对函数的更改。您甚至可以让ASP.NET服务器以某种方式编译文件,但代码仍然需要可编译为DLL以使其可执行。
答案 2 :(得分:1)
您需要通过另一个dll公开C ++代码。
首选是pinvoke。参见:
How to set up a C++ function so that it can be used by p/invoke?
这里也包括: http://msdn.microsoft.com/en-us/library/aa446538.aspx
从技术上讲,您也可以通过COM公开或者使用托管C ++进行编写,但如果您只是尝试公开一些C ++函数,则这些都是过度的。