c调用cdll,而c++函数的有参数需要是nu

2021-01-04 06:37:57 字数 2736 阅读 8624

1楼:子丶夜

c++ 与 c# 中的 null 的意义不太一样。在 c# 中,与非托管 c++ 的 null 最接近的是 system.runtime.

interopservices.intptr.zero,表示的是一个指针空指向。

(因为值是 0)

所以,c# 的非托管函数平台调用的时候不可以把 null 认为是和 c++ 的 null 一样的东西,你可以改用 stringbuilder,因为 stringbuilder 的长度是可变的,而且当改变字符串时不会在其他地方重新分配(因为字符串的不变性),所以我建议你用 stringbuilder。

2楼:冉

你在调用此函数的时候把那个参数也直接填充为null试试呢

3楼:最后的仙人

也用intptr,然后传入intptr.zero试试,不用out修饰

c# 调用c++的dll ,其中一个函数的参数为结构体指针,

4楼:

里面bai涉及到函数指针,在duc#里面用委托替代,总的zhi**如下:

daodelegate int pfunc(void* dst,void* src,int nsize);

unsafe public struct mystruct

我用c++做了一个dll,有一个std::string类型的返回值参数,请问在c#中对应哪种类型能进行参数传递啊?

5楼:匿名用户

dll中返回std::string就会导致非常严重的跨dll问题,和楼上说的一样,不要在模块间传专递非基本类型属。具体原因请参考:

http://hi.baidu.

***/luosiyong/blog/item/a5026d0ffa5ced386159f362.html

6楼:匿名用户

我给你总结了bai4个结果你du去看下下吧!

1。 在dll中定义zhi

返回string字符dao

串的函数时,版如果没有特殊处理权调用该函数

在退出调用该函数的过程(函数/事件)时,会出现以下错误:

invalid pointer operator!

2。当在单元中添加sharemem时,在退出程序的时候会出现同样的错误

3。当在调用dll的项目文件中(不是在单元文件)添加sharemem时,能够正常

运行.4. string类型是borland自定的特殊类型,使用起来真是无比方便,

但是,它需要borladmm.dll的支持,在动态链接库中想使用string类型

要经过特殊的手段,因此还是使用pchar类型吧。pchar也挺方便的。

另外如果没有特殊处理的话: widestring-可以

ansistring-不可以

祝你成功!

c++写的dll中有一个方法,参数是一个取unsigned long的地址,用c#调用,怎么传值

7楼:匿名用户

unsigned long &ulconnectid这不来是取地址自,这是bai引用

du类型。

zhi用c#这样调用:

daouint connectid=1;

holiconnectcontroller(ref connectid,...);

8楼:匿名用户

ulong ref 参数名

没试,不保证正确

c#调用c++动态库一个返回为int[]数组的函数,c#这边如何接收?请高手帮忙解答。

9楼:匿名用户

给你一个思路,如果不行把你的**贴出来,可以详谈。

如果是方法参数返回的内out值,你可以先在c#里面定义容一个int ii =new int[10]数组,然后dllimport的方法定义里面对应的int数组参数为"out int",然后调用方法的时候传入的参数为:out ii[0].

最后再去取ii里面其它的数值,看看是不是得么你想要的。

10楼:匿名用户

dllimport("***x.dll", entrypoint = "***x", charset = charset.ansi)]

public static extern int method();

***x为具体的动态库的名称 method 为你要的方回法的答名称

c++如果调用带有默认参数的函数时缺少一个参数,则(最后一个)参数作为这一参数

11楼:匿名用户

#include

#include

#include

#include

using namespace std;

class point

void print()

};int main()

c++ 调用可执行文件,需要传递一个参数文件,请问该怎么办?

12楼:匿名用户

如果你是vs7.0 以上版本 打开工程属性

在配置属性 -》自定义生成步骤 有一个命令行 把你要执行的语句写里面就可以了。

13楼:匿名用户

入口函数main的参数就是了. 通过它就可以获得运行程序时的命令行参数

C++用void作为函数参数有什么作用

1楼 ever磊 void 的意思是这是一个指针,你可以在函数中将这个指针转换为任何一个数据结构的指针。 可以说void 功能是相当强大的。 例如,在你设计模块间接口时,暂时无法判定传参类型。 就可以通过void 传入,在函数中将指针转化你需要的类型就可以了。 2楼 马贞和浩宕 void setva...

c++函数前面加有什么作用,C++类的成员函数前加&什么意思

1楼 人生多问 如果这个函数的返回值不是void,那 的作用是指函数的返回值是引用类型,这个符号是与返回值配对的 这就是指返回值是引用 2楼 匿名用户 是用作 且 ,表示并列。 逻辑上表示两者属于缺一不可的关系,还可以表示一个人和另外一个人之意,与and同义。如a b,表示a与b,a和b。 字符 的...

c语言中的函数形参为void是什么意思

1楼 匿名用户 c语言中的void 基本上就是两个意思 无,没有 任意类型 这两个意思,与void出现的 位置和修饰变量相关 函数返回值位置,如 void func int i 表示func 函数没有返回值,void不可省 函数参数位置,如 void func void 表示func 函数即没有返回...