Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
问题:从C+调用C#unmanaged COM+;MFC 我使用Nistun> COM< >强连接>将一个C++项目链接到一个使用TLB文件的MFC C++项目。该程序在主PC(我编译代码的地方)中正确运行。但当我在另一台计算机上运行该程序时(使用相同的操作系统,即Win 10),运行库错误发生_C#_C++_Visual C++_Mfc_Unmanaged - Fatal编程技术网

问题:从C+调用C#unmanaged COM+;MFC 我使用Nistun> COM< >强连接>将一个C++项目链接到一个使用TLB文件的MFC C++项目。该程序在主PC(我编译代码的地方)中正确运行。但当我在另一台计算机上运行该程序时(使用相同的操作系统,即Win 10),运行库错误发生

问题:从C+调用C#unmanaged COM+;MFC 我使用Nistun> COM< >强连接>将一个C++项目链接到一个使用TLB文件的MFC C++项目。该程序在主PC(我编译代码的地方)中正确运行。但当我在另一台计算机上运行该程序时(使用相同的操作系统,即Win 10),运行库错误发生,c#,c++,visual-c++,mfc,unmanaged,C#,C++,Visual C++,Mfc,Unmanaged,C#代码 命名空间CSharp非托管 { 公共接口IGlobalInfo { 空乘(); 整数和(整数a,整数b); 双叠加(整数x,整数y); } 公共类GlobalInfo:IGlobalInfo { 公共空间 { int c=4*5; System.IO.File.writealText(“D:\\test.txt”,c.ToString()); Debug.WriteLine(“MultiPly:+c.ToString()); } 公共整数和(整数a,整数b) { 返回a+b; } }

C#代码

命名空间CSharp非托管
{
公共接口IGlobalInfo
{
空乘();
整数和(整数a,整数b);
双叠加(整数x,整数y);
}
公共类GlobalInfo:IGlobalInfo
{
公共空间
{
int c=4*5;
System.IO.File.writealText(“D:\\test.txt”,c.ToString());
Debug.WriteLine(“MultiPly:+c.ToString());
}
公共整数和(整数a,整数b)
{
返回a+b;
}
}
}
C++MFC代码

#仅导入名为_guidsraw_interfaces _的“CSharpUnmanaged.tlb”
int main(){
HRESULT hr=共同初始化(0);
CreateInstance(uuuidof(CSharpUnmanaged::globalInfo));
coninitialize();
如果(globalInfo==NULL)AfxMessageBox(L“NULL”);
globalInfo->multiPly();
}
我试图跟踪错误,我确信问题与globalInfo有关,该globalInfo在运行程序期间保持为空。


感谢@SantoshDhanawade

在目标计算机上,此脚本必须运行:

RegAsm.exe -tlb -codebase yourdll.dll
注意:以管理员身份运行命令提示符

此脚本创建一个tlb文件,必须替换为原始tlb文件


干杯…

有一个调用是注册GUID为的com组件。您是否已在另一台计算机上注册?为什么在调用该方法之前要调用
coninitialize
?是否在目标计算机上安装MFC运行时?您是否在目标上安装了框架?您是否在目标计算机上将.NET库注册为COM?@SantoshDhanawade如何在另一台计算机上注册它?@Selvin.NET framework和MFC runtime安装在目标计算机上。另外,.Net库注册为COM.RegAsm.exe-tlb-codebase yourdll.dll