我正在使用DLLImport从C#应用程序调用GhostScript库。所以我有这样的代码,[DllImport("gsdll32.dll",EntryPoint="gsapi_init_with_args")]privatestaticexternintgsapi_init_with_args(IntPtrinstance,intargc,IntPtrargv);try{intReturn=gsapi_init_with_args(intGSInstanceHandle,intElementCount,intptrArgs);}catch(Exceptionex){thrownewA
问题介绍:我必须通过DLL文件、LIB文件和函数声明为dllimport的c头文件提供的API来控制某个设备。当我在C++项目中使用API时,一切正常-我包含了header、lib、dll,并调用了header文件中声明的函数。当尝试使用[DllImport]属性从C#.NET项目调用这些函数时,问题就开始了:函数是用准确的名称和参数声明的,并且运行代码没有抛出任何异常。然而设备根本没有响应,就像这些功能从未真正被调用过一样。在C头文件中是如何声明的:int__declspec(dllimport)Init_Card_RTx(unsignedshortdevice_num,unsign
我正在尝试找到一种方法来将代码添加到swig生成的函数中。我已经使用类型映射来扩展类,但在文档中找不到任何关于扩展特定功能的内容。给定以下swig接口(interface)文件:%moduleTest%{#include"example.h"%}%typemap(cscode)Example%{bool64bit=SizeOf(typeof(System.IntPtr))==8;staticstringPath=64bit?"/...Pathto64bitdll.../":"/...Pathto32bitdll.../";%}%include"example.h"我得到以下C#代码:p
我有一个DLL,我想使用它的一些功能。#includeusingnamespacestd;extern"C"__declspec(dllimport)intInitialize(char*localPort,char*adminServerName,intrpcTimeout);intmain(){intres=Initialize("7864","6000@kabc",10000);return0;}我没有DLL的.lib文件,所以无论如何我都可以链接到它。我想到的一件事是使用LoadLibrary函数,然后使用GetProcAddress()。还有其他办法吗?当我编译下面的代码时错
我的应用程序使用一个版本的库(a.dll),我正在使用另一个DLL(b.dll),后者又使用我使用的同一库(a.dll)的旧版本。我正在通过嵌入list文件来构建应用程序。我使用的DLL也使用嵌入式list文件。我的WinSXS文件夹中有两个版本的库。我的应用程序无法加载适当版本的DLL。有一个单独的list文件(不嵌入到DLL中)是否有助于解决问题?解决方法是什么? 最佳答案 您的情况正是WinSxS应该解决的情况。它应该可以正常工作。或者:list文件指向同一版本,或者其中一个list文件没有正确嵌入,或者WinSxS中的共享程
我有一个C++dll,其中有一个函数,我试图从C#应用程序调用。这是C++头文件中的代码extern"C"_declspec(dllexport)intLabelStoringSSDsim(intdevNum,UCHARserial[40],UCHARwwn[40],UCHARConfigID[5],UCHARFrmRev[8],UCHARDevName[40],inteCode);这是C++源文件中的代码intLabelStoringSSDsim(intdevNum,UCHARserialLbl[40],UCHARwwnLbl[40],UCHARConfigID[5],UCHARFr
我有一个c#.net4应用程序,使用vs2010。我正在尝试导入一个c++dll(基于vs2005)。[DllImport("Card.dll")]我得到了失败:UnabletoloadDLL'Card.dll':Theapplicationhasfailedtostartbecauseitsside-by-sideconfigurationisincorrect.Pleaseseetheapplicationeventlogorusethecommand-linesxstrace.exetoolformoredetail.(ExceptionfromHRESULT:0x800736B
我正在使用C#开发.NET3.5控制台应用程序,它使用VC++非托管DLL。几周前我处理它时它运行没有问题,但我今天又回来了,现在收到BadImageFormatException(“试图加载格式不正确的程序。(HRESULT的异常:0x8007000B)).我的开发工作站运行的是64位Windows7,并且我使用非托管代码进行了大量工作,因此我立即检查了.NET程序集和VC++库是否都有x86目标。他们做到了。可以肯定的是,我清理并重建了VC++库和.NET程序集,但无济于事。这两个系统都没有做任何特别不寻常的事情。VC++库加载一个二进制数据文件并对它的内容进行一些数学处理。.NE
我有一个C++dll,它必须集成到C#项目中。我想我找到了正确的方法,但是调用dll会给我这个错误:System.BadImageFormatException:尝试加载格式不正确的程序。(HRESULT异常:0x8007000B)这是dll中的函数:externlongFARPASCALconvert(LPSTRfilename);这是我在C#中使用的代码namespaceTest{publicpartialclassForm1:Form{[DllImport("convert.dll",SetLastError=true)]staticexternInt32convert([Mar
这是UsingpHashfrom.NET的后续帖子您将如何在.NET中声明以下C++声明?intph_dct_imagehash(constchar*file,ulong64&hash);到目前为止我有[DllImport(@"pHash.dll")]publicstaticexternintph_dct_imagehash(stringfile,refulonghash);但是我现在遇到以下错误ulonghash1=0,hash2=0;stringfirstImage=@"C:\Users\dance2die\Pictures\2011-01-23\177.JPG";stringse