最近做一个项目,需要调用另外一个公司的dll,是用c++写的,其中一个函数的参数类型为Varient*,看了一下他们提供的c++写的demo,传进去的参数应该是stl::map这个数据类型。但是c#中没有map,我用了dictionary和hashtable转为object传进去,都不成功,请教大家怎么弄?只有30分,大家帮帮我
解决方案 »
- 想写个工程,但不知道写什么方面的。大家来说说吧
- 使用SendMessage遇到的问题
- 泛型接口的协变与抗变 用法
- 给datagridview加载数据库记录时候,如何给其中的combobox列设置数值?
- DataGrid的一个问题: Column “XXX” does not belong to Table “XXX”
- ?vb中的byte数组和c# 中有什么区别,特别是用法,c#中的byte[]是怎样保存到数据库中和从数据库中读取的.
- 大家知道这段程序如果在图形界面上面应该对应怎么个操作法?
- 我从数据库中查询数据,被查询出的记录没有或者为NULL,
- 将窗体最小化到状态栏,每次点击打开窗的菜单窗体都会重新打开,我想实现当第二次打开窗体时只要激活第一次打开的窗体
- K2 blackpearl 流程开发-查看流程图
- 请教C#中的swit case问题
- 哪位达人能提供多线程,Socket的C#实例代码?
哥们,要尽快结贴呀,看到结贴率低的都不想回答。
[StructLayout(LayoutKind.Sequential)]
struct MapNode
{
[MarshalAs(260, CharSet = CharSet.Unicode)]
string Key;
[MarshalAs(260, CharSet = CharSet.Unicode)]
string Value;
}对应c++结构
struct MapNode
{
WCHAR Key[260];
WCHAR Value[260];
};
产生新的C++ dll封装带map的接口
改成 例如
void Test(MapNode []mn);然后在C#中导入这个接口即口。ps:爆汗,最近两天回答了很多类似的问题 都不查的
对,类似于适配器,昨天太忙没有时间看回复的贴子,用你的dll调用厂家的dll,你的dll要为c#留好接口就行了;