C++
三五月儿
修行者 服务端开发(java/.net)
展开
-
C#调用C++ dll的两种方法
静态调用:调用方式简单,可满足通常的要求;被调用的dll会在程序加载时一起加载到内存中;如果在程序文件夹中没有dll文件,程序会报错。动态调用:调用方式复杂,需借助于API函数来完成dll的加载,卸载及方法调用;能更加有效地使用内存,多在大型应用程序中使用;如果在程序文件夹中没有dll文件,也可以是程序不报错。原创 2015-10-24 16:57:00 · 11999 阅读 · 3 评论 -
C++中overflow错误处理方法
<br />今天,用vs2008调试一个C++程序时,出现下列提示:stack overflow。于是,逐步调试,发现错误出在,char str[100000]。仔细想想,原因应该是字符串长度太大,分配内存时,超过了栈的默认大小,一般栈的默认大小为1M。于是按下面步骤修改站和堆的默认大小。“项目”——“属性”——“连接器”——“系统”——将“堆保留大小”、“堆提交大小”、“堆栈保留大小”、“堆栈提交大小”全部改为102400000(单位应该是字节)。再运行,确实没有刚才的错误了,不过这时,又冒出来以下的错误原创 2010-12-07 16:28:00 · 6522 阅读 · 0 评论 -
使用Signature Tool自动生成P/Invoke调用Windows API的C#函数声明
在网上看到很多网友在.NET程序中调用Win32 API,或者调用自己的VC DLL里面提供的函数的时候,总是被生成正确的C函数在C#中的正确声明而困扰,而生成C++中结构体在C#中的声明 - 天,没有什么比这个更让人恶心的事情了。因为: 1. 如果你的结构体里面包含 TCHAR字符串成员的话,需要考虑ANSI和Unicode DLL的情形。 2. 如果你的结构体转载 2017-02-14 12:08:47 · 1023 阅读 · 0 评论