unmanaged

    0热度

    1回答

    我正在编写的应用程序有一个奇怪的问题。我很确定我最近没有在下面的代码中改变任何东西,但不知何故它停止了工作。 重点。 我使用: [DllImport("NetApi32.dll", SetLastError = true, CharSet = CharSet.Unicode)] public static extern uint NetShareGetInfo( string

    0热度

    1回答

    我想创建一个OpenPop的C#管理的x86 DLL包装,我从我的非托管(C)代码调用。 我已经在过去使用NuGet“UnmanagedExports”程序包对其他产品做了这项工作,看起来效果很好。 我试着用OpenPop.net软件包做这件事,但当我打电话给“client = new Pop3Client();”时我得到了一个GPF。如果我删除了所有对OpenPop的调用,则DLL将加载并正确返

    1热度

    1回答

    我有一个WCF服务,它引用了LevelDB-sharp(https://github.com/meebey/leveldb-sharp),后者又引用(DllImport)leveldb.dll。 一切都完美地运行自己的计算机上,但只要我部署到生活,我得到错误信息 服务器遇到错误处理请求。 '例外 消息'无法加载DLL'leveldb.dll':找不到指定的模块 。 (异常来自HRESULT:0x8

    0热度

    2回答

    Marshal.SizeOf()将在尝试计算MyClass类型的对象的长度时引发异常。 这里是类: <StructLayout(LayoutKind.Sequential, Pack:=1)> Public Class MyClass Public ReadOnly UniqueId As Long <MarshalAs(UnmanagedType.AnsiBStr, S

    1热度

    2回答

    在Visual Studio中如何在c#项目中查看和监视非托管内存使用情况?有没有办法在调试后检查分配的内存是否被正确删除? 代码: pv_Memory = Marshal.AllocHGlobal(0x200000); 我试图到Visual Studio 2015年中使用“诊断工具”,可以看到内存的增加,虽然它似乎没有分离出非托管对象和内存。 任何提示?谢谢。 配置: 1的Visual Stud

    -1热度

    1回答

    我正在构建一个托管的DLL,用于非托管环境(C/C++应用程序 - FreeRDP)。 Interop在大多数情况下工作正常,但在一个特定的情况下,我无法将指针传递给struct。 在API我有一个结构: typedef struct _IWTSListenerCallback IWTSListenerCallback; struct _IWTSListenerCallback {

    0热度

    1回答

    我正在通过UDP从C/C++应用程序接收数据。这个应用程序正在将类的memcpy放入缓冲区并按照我们的方式抛出它。我们的应用程序是用C#编写的,我需要以某种方式理解数据。我们可以访问结构的头文件 - 一切都基本上是一个结构或枚举。我们无法改变数据的格式,而且头文件可能会经常更改。 我已经考虑用C++重写我们的通信类来接收数据,然后我对它的序列化有了更多的控制,但是这需要很长时间,而且我的C++很生

    3热度

    3回答

    我正在处理一些C#和C++非托管代码,并且在处理内存时存在两个不明白的地方。如果有人能帮助我理解: 如果一个变量在C#下动态分配(使用new),然后传递给C++非托管代码。该变量内存是否需要在用户的C++非托管代码下手动释放? 如果一个变量在C++非托管(使用new)的情况下动态分配,然后传递给C#,可以安全地说垃圾收集器会释放该内存吗?

    2热度

    3回答

    我知道如何在结构体上创建非托管指针。 但我想有一个非托管的指针,将指向一个对象。 我已经知道我需要使用 GCHandle.Alloc(...); ,以保护从GC的对象,但我不能找到一种方法来定义一个指针......

    -1热度

    1回答

    我正在为C#项目创建安装程序。它需要一个非托管的第三方C++ DLL来连接到硬件设备。当我从调试器运行项目时,或者当我右键单击 - >以管理员身份在安装的程序上运行时,一切正常。但是,如果我不以管理员身份以某种方式运行它,它会崩溃。那么,如何设置安装程序以便不需要管理员权限来运行?我知道我可以在app.manifest设置requestedExecutionLevel到requireAdminis