Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.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+;调用.net com dll时发生SEHExException+;将.net 2.0升级到.net 4.0后 P>我的项目是用C++层从其他平台访问.NETCOM DLL。首先我在.NET 2版本中开发了COM DLL。一切都好。没有问题。我们用ReaSas.EXE注册了DLL,然后它工作正常,然后我想把我的项目升级到.NET 4。我用vs 2010打开了这个项目,成功地完成了转换。构建时没有问题。但是我们在测试期间遇到了一个奇怪的错误。它首先给出了未注册的类,然后给出了sehexception(0x80004005)。我搜索了所有内容,但找不到解决方案。我该怎么办呢非常感谢你的帮助_C#_C++_Asp.net_.net_Dll - Fatal编程技术网

C# 从c+;调用.net com dll时发生SEHExException+;将.net 2.0升级到.net 4.0后 P>我的项目是用C++层从其他平台访问.NETCOM DLL。首先我在.NET 2版本中开发了COM DLL。一切都好。没有问题。我们用ReaSas.EXE注册了DLL,然后它工作正常,然后我想把我的项目升级到.NET 4。我用vs 2010打开了这个项目,成功地完成了转换。构建时没有问题。但是我们在测试期间遇到了一个奇怪的错误。它首先给出了未注册的类,然后给出了sehexception(0x80004005)。我搜索了所有内容,但找不到解决方案。我该怎么办呢非常感谢你的帮助

C# 从c+;调用.net com dll时发生SEHExException+;将.net 2.0升级到.net 4.0后 P>我的项目是用C++层从其他平台访问.NETCOM DLL。首先我在.NET 2版本中开发了COM DLL。一切都好。没有问题。我们用ReaSas.EXE注册了DLL,然后它工作正常,然后我想把我的项目升级到.NET 4。我用vs 2010打开了这个项目,成功地完成了转换。构建时没有问题。但是我们在测试期间遇到了一个奇怪的错误。它首先给出了未注册的类,然后给出了sehexception(0x80004005)。我搜索了所有内容,但找不到解决方案。我该怎么办呢非常感谢你的帮助,c#,c++,asp.net,.net,dll,C#,C++,Asp.net,.net,Dll,用于注册.net 2.0的旧批处理文件 path C:\Windows\Microsoft.NET\Framework\v2.0.50727 RegAsm.exe AkosLibraryCs.dll /tlb:AkosLibraryCs.tlb /codebase 用于注册.net 4.0的批处理文件 path C:\Windows\Microsoft.NET\Framework\v4.0.30319 regasm.exe AkosLibraryCs.dll /tlb:AkosLibra

用于注册.net 2.0的旧批处理文件

path C:\Windows\Microsoft.NET\Framework\v2.0.50727
RegAsm.exe AkosLibraryCs.dll  /tlb:AkosLibraryCs.tlb /codebase
用于注册.net 4.0的批处理文件

path C:\Windows\Microsoft.NET\Framework\v4.0.30319
regasm.exe  AkosLibraryCs.dll  /tlb:AkosLibraryCs.tlb /codebase   
获取此行的错误信息:

IAkosFunctionPtr akosFunc(__uuidof(AkosFunction));
c++代码

#include "stdafx.h"
#include "tchar.h"
#import "AkosLibraryCs.tlb" raw_interfaces_only
 using namespace AkosLibraryCs;
extern "C" __declspec(dllexport) _TCHAR* runFunction(_TCHAR*  functionCode, _TCHAR*  params) 
{
void* resultAsVoid;
try
{
IAkosFunctionPtr akosFunc(__uuidof(AkosFunction)); ***//getting error this line!!!!!!!!***
void* functionCodeAsVoid=(void*)functionCode;
void* paramsAsVoid=(void*)params;
akosFunc->runFunction(functionCodeAsVoid,paramsAsVoid, &resultAsVoid); 
}
catch(_com_error& ex  )
{
LPCWSTR str = TEXT("Hata Oluştu");
MessageBox(0,ex.ErrorMessage(),str,0);
throw;
}

return  static_cast<_TCHAR*>(resultAsVoid);
}
#包括“stdafx.h”
#包括“tchar.h”
#仅导入“AkosLibraryCs.tlb”原始接口
使用名称空间AkosLibraryCs;
外部“C”\u declspec(dllexport)\u TCHAR*runFunction(\u TCHAR*functionCode,\u TCHAR*params)
{
无效*结果无效;
尝试
{
IAkosFunctionPtr akosFunc(u_uidof(AkosFunction));***//此行出错***
void*函数代码asvoid=(void*)函数代码;
void*paramsavid=(void*)参数;
akosFunc->runFunction(functionCodeAsVoid、paramsAsVoid和resultAsVoid);
}
捕获(com错误和ex)
{
LPCWSTR str=文本(“Hata Oluştu”);
MessageBox(0,例如ErrorMessage(),str,0);
投掷;
}
返回静态_cast(resultAsVoid);
}

您确定您使用的regasm.exe是4.0版本吗?是的,我还在上面的批处理文件中给出了regasm.exe路径。批处理文件行中有任何错误吗?regasm调用dll时是否有任何错误?只是它给出了警告,旧版本也给出了相同的警告,但工作正常RegAsm:warning RA0000:向/codebase注册未签名的程序集可能会导致程序集干扰可能安装在同一台计算机上的其他应用程序。/codebase开关仅用于已签名的程序集。请为您的程序集指定一个强名称并重新注册。已成功注册的类型程序集已导出到“C:\…\AkosLibraryCs.tlb”,类型库已成功注册。是否使用regasam/u注销旧DLL?