Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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++;Builder 4-字符串和System::Strings之间的歧义 我创建了一个.NET COM DLL,我需要在我的C++ Builder 4项目中使用。我可以使用导入类型库功能导入DLL(事实上,我在构建DLL时导入了附带的TLB文件)。这在我的C++ Builder \Apple文件夹中创建了一个组件TyLB。然后,我将这个TLB文件包括在我的项目中,我能够做到以下几点: TCOM_Create theDLL; theDLL = CoCreate::Create(); theDLL->FunctionX(paramy);_.net_Dll_C++builder_Ambiguity_Mscorlib - Fatal编程技术网

在C++;Builder 4-字符串和System::Strings之间的歧义 我创建了一个.NET COM DLL,我需要在我的C++ Builder 4项目中使用。我可以使用导入类型库功能导入DLL(事实上,我在构建DLL时导入了附带的TLB文件)。这在我的C++ Builder \Apple文件夹中创建了一个组件TyLB。然后,我将这个TLB文件包括在我的项目中,我能够做到以下几点: TCOM_Create theDLL; theDLL = CoCreate::Create(); theDLL->FunctionX(paramy);

在C++;Builder 4-字符串和System::Strings之间的歧义 我创建了一个.NET COM DLL,我需要在我的C++ Builder 4项目中使用。我可以使用导入类型库功能导入DLL(事实上,我在构建DLL时导入了附带的TLB文件)。这在我的C++ Builder \Apple文件夹中创建了一个组件TyLB。然后,我将这个TLB文件包括在我的项目中,我能够做到以下几点: TCOM_Create theDLL; theDLL = CoCreate::Create(); theDLL->FunctionX(paramy);,.net,dll,c++builder,ambiguity,mscorlib,.net,Dll,C++builder,Ambiguity,Mscorlib,这正是我们想要的 从“导入类型库”功能创建的组件_TLB.h包括(除其他外)mscorlib: #include "mscorlib_TLB.h" …这似乎是我的DLL的可靠部分,以下是我在评论中发现的内容: // DepndLst: // (1) v2.0 mscorlib, (C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorlib.tlb) **<---** // (2) v2.0 stdole, (C:\Windo

这正是我们想要的


从“导入类型库”功能创建的组件_TLB.h包括(除其他外)mscorlib:

#include "mscorlib_TLB.h"
…这似乎是我的DLL的可靠部分,以下是我在评论中发现的内容:

// DepndLst: 
//   (1) v2.0 mscorlib, (C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorlib.tlb)  **<---**
//   (2) v2.0 stdole, (C:\Windows\SysWOW64\stdole2.tlb)
//   (3) v4.0 StdVCL, (C:\Windows\SysWow64\STDVCL40.DLL)
…给了我以下错误:

[C++ Error] Unit1.cpp(23): E2015 Ambiguity between 'String' and 'System::String'.
看起来这个mscorlib有自己的字符串类型或其他东西。。。我发现:

extern const GUID IID__String;


我在项目中经常使用字符串类型,如何“强制”编译器使用System::String,而不必使用字符串类型重新编码所有行,或者如何解决这个问题?

使用名称空间,这样这些标识符就不会添加到全局名称空间中

namespace Mumble {
   #include Component_TLB.h
}

我尝试了您的建议,但随后出现以下错误:[C++错误]utilcls.h(2332):E2029'IDispatch'必须是以前定义的类或结构。抱歉,不知道utilcls.h是什么。它由mscorlib#TLB.h包含,如下所示:#包含
extern const GUID CLSID_String;
namespace Mumble {
   #include Component_TLB.h
}