vc++ 调用 C# 的dll时报错? 请问: vc++ 调用C#的dll(dmp.dll文件)时,编译时出错。错误如下: fatal error C1113: 在“f:\测试用例1\vmtest\debug\dmp.dll”上 #using 失败代码如下: #using "..\debug\dmp.dll" 需要在项目属性中进行设置其他的吗?请指导,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 c#的dll能不能做成com?vc调用com就简单多了 import 试试。#import "CSClientDll.tlb" 回楼上的几位兄弟,我采用了两种方式:1.C#类库代码生成DLL,去调用是可以的。但是在代码量大的工程中,编译时出现如下警告。 1>f:\Test Manage System\test2\JobDlg.cpp : warning C4793: “CJobDlg::`vcall'{356}'”: 编译为本机的函数:1> 非 clrcall vcall thunk 必须编译为本机1>正在编译...1>DatabaseRestoreDlg.cpp1>正在生成代码...1>正在编译资源...1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.01>Copyright (C) Microsoft Corporation. All rights reserved.1>正在链接...1>XqSdSetDlg2.obj : warning LNK4248: 无法解析 typeref 标记(01000011)(为“_TREEITEM”);映像可能无法运行1>Set11Dlg.obj : warning LNK4248: 无法解析 typeref 标记(01000012)(为“_TREEITEM”);映像可能无法运行1>Set22Dlg.obj : warning LNK4248: 无法解析 typeref 标记(01000011)(为“_TREEITEM”);映像可能无法运行1>正在嵌入清单...1>正在缓存 c:\program files\common files\system\ado\msado15.dll 的元数据信息...1>无法缓存 c:\program files\common files\system\ado\msado15.dll 的元数据: 反射失败。1>正在缓存 f:\test manage system\debug\vmp.dll 的元数据信息...1>生成日志保存在“file://f:\Test Manage System\test2\Debug\BuildLog.htm”1>test2 - 0 个错误,28 个警告========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 2.C#类库代码生成COM接口。用tlb文件 在本机上是可以调用的,但是把tlb放到其他的PC机上新建一个VC++ 工程使用时,出现没有注册类别的问题。也用不了。 我的也是这样的情况,c#生成了com的dll和tlb,在本机上用vc6.0可以调用成功,把工程代码拷贝到另外一台机器后,首先编译时提示tlb不能导入,用regasm注册tlb和dll后,编译正常了。可是调用时却在下面第二句代码出错 CoInitialize(NULL); CameraAuthorizer::CameraAuthorizerInterfacePtr p_Add(_uuidof(CameraAuthorizerService));在本机上运行是很正常的 《失恋33天》 男生版 求助:变量传递问题 FTP的问题,函数无法返回 臭问题,如何改变消息框标题 需要做一个类似Sql Server服务管理器的东西,大家指点一下 请教:CDaoDatabase无法打开odbc(access) 寻 请教:想做一个自动安装程序,在安装应用程序的同时把驱动程序一起安装,请问驱动程序这一块应该怎样处理? 关于如何导入DLL中的类的实际问题,高手才能进! 推荐一本学习socket的书。。。 VC如何实现C#里的DESCryptoServiceProvider 关于多线程对Bitmap绘画的问题
vc调用com就简单多了
回楼上的几位兄弟,我采用了两种方式:1.C#类库代码生成DLL,去调用是可以的。但是在代码量大的工程中,编译时出现如下警告。
1>f:\Test Manage System\test2\JobDlg.cpp : warning C4793: “CJobDlg::`vcall'{356}'”: 编译为本机的函数:
1> 非 clrcall vcall thunk 必须编译为本机
1>正在编译...
1>DatabaseRestoreDlg.cpp1>正在生成代码...
1>正在编译资源...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>正在链接...
1>XqSdSetDlg2.obj : warning LNK4248: 无法解析 typeref 标记(01000011)(为“_TREEITEM”);映像可能无法运行
1>Set11Dlg.obj : warning LNK4248: 无法解析 typeref 标记(01000012)(为“_TREEITEM”);映像可能无法运行
1>Set22Dlg.obj : warning LNK4248: 无法解析 typeref 标记(01000011)(为“_TREEITEM”);映像可能无法运行1>正在嵌入清单...
1>正在缓存 c:\program files\common files\system\ado\msado15.dll 的元数据信息...
1>无法缓存 c:\program files\common files\system\ado\msado15.dll 的元数据: 反射失败。
1>正在缓存 f:\test manage system\debug\vmp.dll 的元数据信息...
1>生成日志保存在“file://f:\Test Manage System\test2\Debug\BuildLog.htm”
1>test2 - 0 个错误,28 个警告
========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 2.C#类库代码生成COM接口。用tlb文件 在本机上是可以调用的,但是把tlb放到其他的PC机上新建一个VC++ 工程使用时,出现没有注册类别的问题。也用不了。
CoInitialize(NULL);
CameraAuthorizer::CameraAuthorizerInterfacePtr p_Add(_uuidof(CameraAuthorizerService));
在本机上运行是很正常的