我使用命令行(csc)创建了一个dll.假设dll包含Add(int,int)方法.现在我想在vc ++中使用add函数?
这该怎么做?
对你的帮助表示感谢.
这就是我在做的事情.
vcproj; 对于这个项目,我有右键单击和链接器部分添加其他依赖项.添加dll所在的路径.
main.cpp中
using namespace Test
void main()
{
demo d;
d.add(5,5);
}
Run Code Online (Sandbox Code Playgroud)
错误命名空间测试不存在.
怎么解决这个?
我需要在非托管代码中使用该DLL
我目前正在尝试从非托管C++应用程序中调用C#DLL中的函数.
在网上搜索了几个小时后,我发现我有几个选择.
我可以使用COM,DllExport或者使用反向PInvoke和委托.最后听起来对我最有吸引力,所以在搜索之后我就到了这里.
它声明该文章展示了如何使用反向PInvoke,但看起来C#代码必须首先导入C++ Dll才能使用它.
我需要能够使用C++来调用我的C#Dll函数,而无需先运行C#应用程序.
也许反向PInvoke不是这样做的方式,但是当谈到低级别的东西时我很缺乏经验,所以关于如何做到这一点的任何指针或提示都会很棒.
链接中的代码是
C#
using System.Runtime.InteropServices;
public class foo
{
public delegate void callback(string str);
public static void callee(string str)
{
System.Console.WriteLine("Managed: " +str);
}
public static int Main()
{
caller("Hello World!", 10, new callback(foo.callee));
return 0;
}
[DllImport("nat.dll",CallingConvention=CallingConvention.StdCall)]
public static extern void caller(string str, int count, callback call);
}
Run Code Online (Sandbox Code Playgroud)
C++
#include <stdio.h>
#include <string.h>
typedef void (__stdcall *callback)(wchar_t * str);
extern "C" __declspec(dllexport) void __stdcall caller(wchar_t * input, …Run Code Online (Sandbox Code Playgroud) 我有一个用C#编写的DLL,我想将它与C#应用程序和用非托管VC++编写的应用程序一起使用.这可能吗?
我正在使用Visual Studio 2010.我在C#中编写了一个dll,然后管理了dll.现在由于某种原因,我需要用C++编写一个软件(.NET然后也管理).我需要将C#dll导入到我的C++ .NET代码中.我不知道这样做,我做了几次搜索,但这个问题似乎没有被涵盖.例如,在C#中我没有包含文件,那么我的C++(.NET)项目如何知道dll中的类和函数?谢谢,