我对与非托管库的交互世界还很陌生。我有一个非托管的C函数,可以在函数内通过引用修改字符串。我在尝试从C#中传递字符串并让C函数修改它时遇到了问题。 以下是C函数:__declspec(dllexport) void __stdcall Test(char* name) { *name...
我正在尝试使用C#制作一个DLL,以便在其他语言中使用。我发现了RGiesecke的DllExport,但它似乎无法正常工作。虽然它可以构建并生成一个dll,但当我在Dependency Walker中打开它时,它没有显示任何函数,并且我的调用代码也找不到它们。 我创建了一个新的“类库”项目...
我一直在尝试在Visual Studio 2010 Pro/C#项目中使用Robert Giesecke的扩展程序“Unmanaged Exports”,但无法使其正常工作 - 当我检查已编译的DLL以查看导出函数时,查看器(http://www.nirsoft.net/utils/dll_e...
我用C#编写了一个模块,导出一些函数供C使用。我需要为一些在C和C#之间传递的结构分配一些内存。 我在C中使用malloc进行分配,在C#中使用Marshal.AllocHGlobal()(分配未托管的内存以传递给C)。 如果我使用Marshal.FreeHGlobal()释放用Marsh...
我按照Hans Passant在C++: Getting the "error C2065: 'pst' : undeclared identifier" while using pstsdk?中建议的方式进行了操作(它奏效了),现在我的代码看起来像这样:p...
我正在编写一个高性能应用程序,每毫秒要处理数百个事件。 非托管C++比托管C++更快吗?为什么? 托管C++处理CLR而不是操作系统,CLR负责内存管理,这简化了代码并且可能比由“程序员”编写的非托管C++代码更有效率?还是有其他原因? 当使用托管时,程序员如何避免动态内存分配造成的性能损...
我有一个未被管理的库,其中有一个函数长这样:type* foo(); foo 基本上通过 Marshal.AllocHGlobal 在托管堆上为非托管的 type 分配了一个实例。 我有一个托管版本的 type。虽然它不是可调平的,但我在成员上设置了 MarshalAs 属性,因此我可以使用...
我正在使用一些返回指针(IntPtr)到大型图像对象的非托管代码。我使用这些引用,但在完成对图像的操作后,我需要释放由指针所引用的内存。目前,唯一能释放该内存的方法是关闭整个应用程序。我需要能够从我的应用程序中释放该内存。 这里是分配内存的调用。 hbitmap 是返回的指针,需要被释放。[...
我正在尝试从字节数组创建一个双精度浮点数的托管数组。 我已经解决了目前的问题,但我想进行优化。 这里是一些我想让其工作的代码:private unsafe static double[] _Get_Doubles(byte[] _raw_data) { double[] ret; ...