dll函数返回字符串问题。

bgtjing bgtjing 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我是一个初学者,想问如下问题:
1、下面代码中有什么问题:为何我在pb中调用只能调用一次。
static char* g_Fonts= new char[200];
int CALLBACK EnumFontsProc(
CONST LOGFONT *lplf, // logical-font data
CONST TEXTMETRIC *lptm, // physical-font data
DWORD dwType, // font type
LPARAM lpData// application-defined data
)
{
strcat(g_Fonts,(char*)lplf->lfFaceName);
strcat(g_Fonts,(char*)",");
return 1;
}
extern "C" _declspec ( dllexport )
char* pascal getfonts()
{
strcpy(g_Fonts,"");
EnumFontFamilies(GetDC(NULL),NULL,(FONTENUMPROC)EnumFontsProc,0);
return g_Fonts;
}
2、dll函数参数中可以引用数组吗?如何做:
...全文

相关推荐

调用动态链接库 5 - 作为函数返回值的字符串为什么不用在 VI 中先分配内存-综合文档

**灵活性**:允许DLL函数处理字符串内存可以更好地适应未来的变化。如果DLL的实现有所更新,返回的字符串长度发生变化,预先分配的内存可能会成为问题。

weixin_38695061

易语言DLL返回文本型数组实战源码项目

为了让DLL返回的数据能够被易语言正确解析,必须构造一个与易语言文本型数组内存布局相兼容的数据结构。由于易语言无法直接识别复杂的C++类对象,推荐使用纯C风格的结构体(POD, Plain Old Data)来保证二进制兼容性。设计思路如下:定义一个包含字符串指针数组和元素数量的结构体,所有字符串内容集中存放在一块连续的内存区域中,便于整体释放。// 指向字符串指针数组的首地址int count;// 字符串元素个数// 所有字符串总长度(含'\0')

BE东欲

C#调用C++编写的DLL函数各种参数传递问题

本文主要探讨了C#如何调用C++编写的DLL函数,并详细介绍了在不同情况下,如无返回值、返回字符串、返回其他类型以及传递结构体指针等参数传递的问题。C#调用C++编写的DLL函数是跨语言编程中常

weixin_38672840

c# 调用C++编写 的DLL函数各种参数传递问题。

这篇文章将详细介绍 C# 调用 C++ 编写的 DLL 函数各种参数传递问题,包括不返回值的参数、带返回值的参数、传递结构体指针和传递结构体数组等。1.

crazywind_taotao

delphi 调用vc dll 获取返回数据 mac地址

总结,Delphi调用VC++ DLL获取返回数据,尤其是字符串,需要注意数据类型匹配、内存管理和字符串处理。正确地使用`strcpy`和内存管理函数可以解决这类问题,避免数据丢失或内存泄漏。

yunshouhu
评论 5
收藏 已收藏
分享
返回顶部
bgtjing
进程/线程/DLL 15,465 成员 49,169 内容