c# 引用c语言dll文件,C#直接使用DllImport调用C/C++动态库(dll文件)

1.C/C++动态库的编写

下面是我编写的一个比较简单的C++dll文件用来测试,关于如何编写dll文件,我这里便不再赘述,不懂得自行查询,

(1).h文件

#ifdef MYDLL_EXPORTS

#define MYDLL_API __declspec(dllexport)

#else

#define MYDLL_API __declspec(dllimport)

#endif//求两个整数的和(普通类型的参数)

extern "C" MYDLL_API int GetSum(int nNum1, int nNum2);

//获取两个整数中的最大值(含有整数类型的指针为参数)

extern "C" MYDLL_API int GetMaxValue(int *pValue1, int* pValue2);

//获取两个整数中的最小值,最小值以传出参数获取

extern "C" MYDLL_API void GetMinValue(int *pValue1, int* pValue2, int *pMinValue);

//带有char[]与char*参数

extern "C" MYDLL_API int GetLength(char szName[], char* szBirth);

(2).cpp文件

//求两个整数的和(普通类型的参数)

extern "C" MYDLL_API int GetSum(int nNum1, int nNum2)

{

return (nNum1 + nNum2);

}

//获取整个整数中的最大值

extern "C" MYDLL_API int GetMaxValue(int *pValue1, int* pValue2)

{

return (*pValue1 > *pValue2) ? *pValue1 : *pValue2;

}

//获取两个整数中的最小值,最小值以传出参数获取

extern "C" MYDLL_API void GetMinValue(int *pValue1, int* pValue2, int *pMinValue)

{

if (*pValue1 < *pValue2)

{

*pMinValue = *pValue1;

}

else

{

*pMinValue = *pValue2;

}

}

//带有char[]与char*参数

extern "C" MYDLL_API int GetLength(char szName[], char* szBirth)

{


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部