C#下添加C++动态库

标签: c#c++dllc

 1265人阅读 评论(1) 收藏 举报

category_icon.jpg 分类:

C#(2) arrow_triangle%20_down.jpg

这个网上很多。但是没有能运行起来的。自己经过一周多的摸索进行稍微总结下。首先是

C++下的声明:

头文件:extern"C" _declspec(dllexport)intAdd(int sm);

Cpp文件:

int Add(intsm)

{

    intinsx=20;

    sm=insx+sm;

    returnsm;

}

头文件:extern"C" _declspec(dllexport)intAdd(int sm);

Cpp文件:

int Add(intsm)

{

    intinsx=20;

    sm=insx+sm;

    returnsm;

}

生成dll把所生成的拷到C#的bin/debug下

在C#下调用:

[DllImport("mediastream.dll", EntryPoint = "Add", CharSet =CharSet.Auto, CallingConvention =CallingConvention.Cdecl)]

        publicstatic extern int Add(intsm);

[DllImport("mediastream.dll", EntryPoint = "Add", CharSet =CharSet.Auto, CallingConvention =CallingConvention.Cdecl)]

        publicstatic extern int Add(intsm);

[DllImport("mediastream.dll", EntryPoint = "Add", CharSet =CharSet.Auto, CallingConvention =CallingConvention.Cdecl)]

  public static extern int Add(intsm);

[DllImport("mediastream.dll", EntryPoint = "Add", CharSet =CharSet.Auto, CallingConvention =CallingConvention.Cdecl)]

        publicstatic extern int Add(intsm);

好了就可以调用了Add了。

虽然过程很简单但是摸索了好久才弄出来的。


标签: c#c++dllc

 1265人阅读 评论(1) 收藏 举报

category_icon.jpg 分类:

C#(2) arrow_triangle%20_down.jpg

这个网上很多。但是没有能运行起来的。自己经过一周多的摸索进行稍微总结下。首先是

C++下的声明:

头文件:extern"C" _declspec(dllexport)intAdd(int sm);

Cpp文件:

int Add(intsm)

{

    intinsx=20;

    sm=insx+sm;

    returnsm;

}

头文件:extern"C" _declspec(dllexport)intAdd(int sm);

Cpp文件:

int Add(intsm)

{

    intinsx=20;

    sm=insx+sm;

    returnsm;

}

生成dll把所生成的拷到C#的bin/debug下

在C#下调用:

[DllImport("mediastream.dll", EntryPoint = "Add", CharSet =CharSet.Auto, CallingConvention =CallingConvention.Cdecl)]

        publicstatic extern int Add(intsm);

[DllImport("mediastream.dll", EntryPoint = "Add", CharSet =CharSet.Auto, CallingConvention =CallingConvention.Cdecl)]

        publicstatic extern int Add(intsm);

[DllImport("mediastream.dll", EntryPoint = "Add", CharSet =CharSet.Auto, CallingConvention =CallingConvention.Cdecl)]

  public static extern int Add(intsm);

[DllImport("mediastream.dll", EntryPoint = "Add", CharSet =CharSet.Auto, CallingConvention =CallingConvention.Cdecl)]

        publicstatic extern int Add(intsm);

好了就可以调用了Add了。

虽然过程很简单但是摸索了好久才弄出来的。