Skip to content

Jetsly/pjsip-csharp

Repository files navigation

pjsip-csharp

build pjsip and use from C#

一、编译

1. 下载PJSIP
2. 用VS打开pjproject-vs8.sln解决方案
3. 在pjlib\include\pj目录下添加config_site.h文件

二、转换为DLL可用

1. 安装SWIG
2. 打开pjsip-apps\src\swig目录,并且创建csharp文件夹,然后进去执行
swig -I../../../../pjlib/include -I../../../../pjlib-util/include -I../../../../pjmedia/include -I../../../../pjsip/include -I../../../../pjnath/include -w312 -c++ -csharp -o pjsua2_wrap.cpp ../pjsua2.i
3. 创建Win32 DLL项目pjsua2
4. 设置pjsua2项目属性
4.1 常规->输出目录改成
.\output\$(ProjectName)-$(TargetCPU)-$(PlatformName)-vc$(VSVer)-$(Configuration)\
4.2 C/C++ -> 常规 -> 附加包含目录改成
..\pjsip\include;..\pjlib\include;..\pjlib-util\include;..\pjmedia\include;..\pjnath\include;%(AdditionalIncludeDirectories)
4.3 链接器-> 常规 -> 附加库目录改成
..\pjsip\lib;..\pjlib-util\lib;..\pjlib\lib;..\pjnath\lib;..\pjmedia\lib;..\third_party\lib;%(AdditionalLibraryDirectories)
4.3 链接器-> 输入 -> 附加依赖性添加
pjlib-i386-Win32-vc8-Debug.lib;pjlib-util-i386-Win32-vc8-Debug.lib;pjmedia-audiodev-i386-Win32-vc8-Debug.lib;pjmedia-codec-i386-Win32-vc8-Debug.lib;pjmedia-i386-Win32-vc8-Debug.lib;pjmedia-videodev-i386-Win32-vc8-Debug.lib;pjnath-i386-Win32-vc8-Debug.lib;pjsip-core-i386-Win32-vc8-Debug.lib;pjsip-simple-i386-Win32-vc8-Debug.lib;pjsip-ua-i386-Win32-vc8-Debug.lib;pjsua2-lib-i386-Win32-vc8-Debug.lib;pjsua-lib-i386-Win32-vc8-Debug.lib;libbaseclasses-i386-Win32-vc8-Debug.lib;libg7221codec-i386-Win32-vc8-Debug.lib;libgsmcodec-i386-Win32-vc8-Debug.lib;libilbccodec-i386-Win32-vc8-Debug.lib;libmilenage-i386-Win32-vc8-Debug.lib;libportaudio-i386-Win32-vc8-Debug.lib;libresample-i386-Win32-vc8-Debug.lib;libspeex-i386-Win32-vc8-Debug.lib;libsrtp-i386-Win32-vc8-Debug.lib;wsock32.lib;ws2_32.lib;ole32.lib;dsound.lib;%(AdditionalDependencies)
5. 添加 pjsip-apps\src\swig\csharp目录中的pjsua2_wrap.cpp文件以及头文件到项目中

三、C#引用

1. 创建C#类库pjsua2_net
2. 添加所有cs文件从pjsip-apps\src\swig\csharp目录
3. 修改?字符为(int)'?'

四、错误集锦

1. cannot open include file 'afxres.h'
//#include "afxres.h"
#include "WinResrc.h"
#define IDC_STATIC  -1
2. RuntimeLibrary 不匹配项: 值MTd_StaticDebug不匹配值MDd_DynamicDebug
在工程上右键-》属性-》c/c++-》代码生成-》运行库
改成 多线程调试 (/MTd)

About

build pjsip and use from C#

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published