jjzjj

dllimport

全部标签

c# - LINQPad:尝试使用使用 [DllImport] 的程序集来访问 C++ dll

我添加了MyAssembly.dll作为对我的查询的附加引用,并且工作正常:我可以毫无问题地使用它的各种类。MyAssembly.dll中的一个类的其中一个方法引用了另一个dll(Wrapper.dll)。Wrapper.dll使用[DllImport]访问C++dll(C.dll)中的功能:[DllImport("C.dll",CallingConvention=CallingConvention.StdCall,EntryPoint="CPlusPlusFunction")]internalstaticexternUInt32_CPlusPlusFunction([MarshalA

c++ - 在 MinGW 中导入内联函数

我正在使用在其header中定义内联函数的共享库。这是一个简化的测试用例,如链接到库的编译单元所见(对于库所见的版本,只需将dllimport替换为dllexport)。class__declspec(dllimport)MyClass{public:intmyFunc2();intmyFunc1();};inlineintMyClass::myFunc2(void){returnmyFunc1();}inlineintMyClass::myFunc1(void){return0;}编译它会给出警告:warning:'intMyClass::myFunc1()'redeclaredwi

c++ - 内联和 dlimport/dllexport

现在我分析一些不是我写的旧代码。在header中有许多这样的声明:SVPDSDKDLLEXPORTinlineC3vecmult(C3vecsrc,D3DXMATRIX&m);SVPDSDKDLLEXPORT定义为_declspec(dllexport),如果在SVPDSDK中使用;as_declspec(dllimport),如果它用于任何使用SVPDSDK.dll的项目。在这里内联对我来说似乎很奇怪,因为标题中没有定义,它在.cpp文件中,但是SVPDSDK的编译和链接以及使用各自DLL的所有项目都可以毫无问题地执行。我假设,它只是被忽略并且函数被导出,就好像它没有被内联一样。我发

c# - 帮我把 C++ 结构转换成 C#

我是C#的新手,需要帮助将C++结构转换为C#。C++结构如下:#defineQUE_ADDR_BUF_LENGTH50#defineQUE_POST_BUF_LENGTH11typedefstruct{constWCHAR*streetAddress;constWCHAR*city;constWCHAR*state;constWCHAR*country;constWCHAR*postalCode;}QueSelectAddressType;typedefstruct{WCHARstreetAddress[QUE_ADDR_BUF_LENGTH+1];WCHARcity[QUE_ADD

c# - 尝试在 C# 中创建数学输入面板

如何在C#中创建数学输入面板?我试图将它放入一个dll中并调用它,但它立即关闭。#include#include#include"micaut.h"#include"micaut_i.c"extern"C"__declspec(dllexport)intrun(){CComPtrg_spMIC;//MathInputControlHRESULThr=CoInitialize(NULL);hr=g_spMIC.CoCreateInstance(CLSID_MathInputControl);hr=g_spMIC->EnableExtendedButtons(VARIANT_TRUE);h

c# - 调用从 c# 返回 char* 的 c++ dll 函数。不能使用 DllImport()

我有一个带有2个函数的c++dllconstchar*getVersionText1(void);voidgetVersionText2(constchar**res);这两个函数都返回一个描述产品版本的字符串。第一个函数将其作为constchar*返回(这意味着它在内部分配和处理定位它),第二个函数获取指向char*的指针并将其设置为指向描述版本的char*。我想从C#调用这些函数并显示文本。我不能使用[dllimport...]风格,因为函数调用的顺序很重要。我首先调用构造函数而不是getVersion,最后调用析构函数。所以dll必须先加载到内存中。您能否发布打印这两个函数文本的

C# DLLImport for C++ dll

我有一个用C++/CLI和.NET构建的.dll。因此,它针对.NET应用程序。API是一组使用托管类型的包装器,因此它是NET原生的。我导入了.dll并添加了如下函数:[DllImport(@"maplib.dll")]publicstaticexternboolinitialize(stringa);当我在我的C#代码中调用这个函数时,它工作正常,但如果我想添加另一个函数,比如..[DllImport(@"maplib.dll")]publicstaticexternboolinitialize(stringa);publicstaticexternboolrunfile(stri

c++ - 错误 LNK2001 : unresolved external symbol "__declspec(dllimport) public: class QString & __thiscall QString::operator=(class QString &&)"

我非常想找到关于上述错误的任何信息。我正在使用visualstudio2010。当我在调试或发布中编译我的项目(32位)时,我收到以下消息:1>heterogeneous.obj:errorLNK2001:unresolvedexternalsymbol"__declspec(dllimport)public:classQString&_thiscallQString::operator=(classQString&&)"(_imp_??4QString@@QAEAAV0@$$QAV0@@Z)1>debug\nori.exe:fatalerrorLNK1120:1unresolvede

Dependency walker 中的 C++ Dll 显示 IESHIMS.dll 和 MSVCR110.dll

我有一个在“Win32”平台的Windows7(64位操作系统)中构建的dll。不幸的是,当我在C#代码中导入这个dll时,我遇到了:”anattemptwasmadetoloadaprogramwithanincorrectformatHRESULT:0x8007000B"被观察到当我为此DLL使用DependencyWalker时,它显示无法找到IESHIMS.dll和MSVCR110.dll依赖项。这些dll来自哪里以及为什么我创建的dll对这两个有依赖性?请帮助我如何克服这个问题?注意:我在我的C#代码中使用了x86平台。 最佳答案

c++ - 如何在命名空间中导入 C++ 类的 dll

我阅读了一些文档,其中提供了与C兼容的函数的简单示例。__declspec(dllexport)MyFunction();我对此很满意。我写了一个小应用程序使用这个dll的功能。我使用了显式链接LoadLibrary()函数。C风格的函数可以毫无问题地工作。但是当我把我的课写成namespaceDllTest{classTest{public:__declspec(dllexport)Test();__declspec(dllexport)voidFunction(int);__declspec(dllexport)intgetBar(void);private:intbar;};}#