mixed-mode

    0热度

    2回答

    我强迫在C#库中公开一些方法,以便它们可以从用C++编写的外部程序(VC++ 6.0)中使用。因此,我创建了一个混合程序集,迄今为止工作得很好,但是对于返回.NET对象数组的方法我有一些麻烦。 方法的.NET签名是: public Results[] Measure(String model, String identifier); 哪里Results本身是: public class Res

    2热度

    1回答

    具有C++以下代码: nConId是连接标识符 pParName参数名 pSubName子参数名称(如果有的话) pValue_out指向长度为char数组的指针FCL_PAR_VALUE_LENGH nValueSize pValue_out向量的实际大小(至少为FCL_PAR_VALUE_LENGH) extern "C" MY_API int ReadParameter(const Conn

    0热度

    1回答

    我想调试一个在VC++中使用MSVS 2008构建的DLL。我选择使用CLR(公共语言运行时?),所以我可以利用System :: Net :: Socket API。该API似乎工作正常,但是,我的DLL函数之一需要比较来自套接字的字节与文字字符串“ON”: 我安排通过套接字发送一些匹配的字节,但比较总是失败。我最终能够通过MSVS调试器遍历代码,并且我可以看到套接字字节被转换为与我使用的字面值

    2热度

    1回答

    我有一个混合模式的C++/CLI类和接口,我想从C#中使用。该接口的定义如下: public interface class IMapRenderingInterfacer { ... property int CurrentCacheSize { int get(); }; ... }; 实现类有这个声明在其头文件: public ref class Map

    -1热度

    1回答

    我开发了托管C++应用程序,它将一个对象ManagedSubscription返回给C#客户端。 ManagedSubscription接收来自C#客户端的回调,在内部自行回调以与本机C++代码进行通信。 虽然从原生跨越边界到托管,我观察到崩溃。 我已经把try-catch放在本地以及托管回调中,但它没有被捕获。 这是我的托管C++代码: struct NativeCallbackWrapper

    1热度

    1回答

    我正在创建一个用C++/CLI编写的NuGet包。它充当C#和本机C++之间的互操作。 生成的DLL具有管理的表面区域和本地implib表面区域。 Visual Studio只喜欢从NuGet包中使用单个引用程序集,而不是每个接收项目的Debug或Release配置中的不同引用程序集。 我想从NuGet包中获取的引用程序集根据配置而有所不同,这样我就可以在nupkg中嵌入调试和发布DLL,并让Re

    0热度

    1回答

    我有一个包含本地和托管C++代码的项目。 其运行时支持设置为/clr。 其配置类型曾被设置为Application,因此它编译为.exe。这工作一切正常。 但是现在我想将此项目用作另一个项目的库(.dll)。 因此,我将配置类型更改为动态库,并将main()函数重命名为其他内容。 然后重建项目给出以下两个错误。 Error 2 error LNK1120: 1 unresolved externa

    0热度

    1回答

    我想在C++中使用C++/CLI中的OpenCV 3编写一个薄包装(实际上我需要的功能非常少)。 但是我不是很清楚如何我可以将我的Mat变量存储在托管类中,如果我尝试这样做,因为我得到,如预期的那样,错误指出我不能混合本机和非本地成员。 从我收集我应该新的我的本地成员和存储一个指针,但我不能这样做在所有情况下,因为许多OpenCV方法返回一个垫,而不是一个指针垫。 经过一些测试,我看到: - 如果

    1热度

    1回答

    我正在将C++库包装到CLI中,以便它可以在c#上运行。 这是我在C++库函数: void setCallback(void (*pFunc)(void * pParam), void * pParam); 这里是例子: void callbackHandler(int iNum) { cout<<"Callback : "<< iNum <<endl; }

    1热度

    2回答

    我有一个非托管类,它接受一个指向内存的指针作为其存储空间。 例如 class MemBlock { void* mpMemoryBlock; // Various other variables that manipulate the memory block goes here. public: MemBlock(void* pMemoryBlock) :