经常会有从一个应用程序同步数据到另一个应用程序的功能。比如说应用A是C++写的,所要同步的程序是用C#完成的。应用B提供了接口供第三方应用同步,接口是用C#编程的dll,那么如何成功的调用dll呢?在调用之前必须的对dll进行注册。
C# DLL为:testSync.dll
注册testSync.dll
BOOL RegisterSyncDll()
{
CONST TCHAR* Dll_NAME = _T("testSync.dll");
//在exe同目录下获取dll路径
CString strAppExePath;
AfxGetModuleFileName(AfxGetInstanceHandle(), strAppExePath);
strAppExePath = strAppExePath.Left(strAppExePath.ReverseFind(_T('\\')) + 1);
CString strDllPath = strAppExePath + Dll_NAME;
//获取.net framework安装路径
TCHAR szSystemPath[260] = _T("");
SHGetFolderPath(NULL, CSIDL_WINDOWS, NULL, 0, szSystemPath);
CString strSyntemPath = szSystemPath;
CString str2RegasmPath = strSyntemPath + _T("\\Microsoft.NET\\Framework\\v2.0.50727\\regasm.exe");
CString str4RegasmPath = strSyntemPath + _T("\\Microsoft.NET\\Framework\\v4.0.30