当前位置: 首页>>代码示例>>C++>>正文


C++ WolframLibraryData::UTF8String_disown方法代码示例

本文整理汇总了C++中WolframLibraryData::UTF8String_disown方法的典型用法代码示例。如果您正苦于以下问题:C++ WolframLibraryData::UTF8String_disown方法的具体用法?C++ WolframLibraryData::UTF8String_disown怎么用?C++ WolframLibraryData::UTF8String_disown使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在WolframLibraryData的用法示例。


在下文中一共展示了WolframLibraryData::UTF8String_disown方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: reverseString

DLLEXPORT int reverseString(WolframLibraryData libData, mint Argc, MArgument *Args, MArgument Res) 
{
	mint i = 0, len = 0, n;
	
	if (string) 
		libData->UTF8String_disown(string);

	string = MArgument_getUTF8String(Args[0]);

	while (string[len]) {
		/* Error for non ASCII string */
		if (string[len] & 128) return LIBRARY_FUNCTION_ERROR;
		len++;
	}

	n = len/2;
	len--; /* For index origin 0 */
	for (i = 0; i < n; i++) {
		char ci = string[i];
		string[i] = string[len - i];
		string[len - i] = ci;
	}

	MArgument_setUTF8String(Res, string);
	return 0;
}
开发者ID:qzmfranklin,项目名称:test,代码行数:26,代码来源:demo_string.c

示例2: encodeString

DLLEXPORT int encodeString(WolframLibraryData libData, mint Argc, MArgument *Args, MArgument Res) 
{
	mint i = 0, shift;
	
	if (string) 
		libData->UTF8String_disown(string);

	string = MArgument_getUTF8String(Args[0]);
	shift = MArgument_getInteger(Args[1]);

	/* Find shift mod 127 so we only 
	   deal with positive numbers below */
	shift = shift % 127;
	if (shift < 0) 
		shift += 127;

	shift -= 1; 
		
	while (string[i]) {
		mint c = (mint) string[i];
		/* Error for non ASCII string */
		if (c & 128) return LIBRARY_FUNCTION_ERROR;
		c = ((c + shift) % 127) + 1;
		string[i++] = (char) c;
	}
	MArgument_setUTF8String(Res, string);
	return 0;
}
开发者ID:qzmfranklin,项目名称:test,代码行数:28,代码来源:demo_string.c

示例3: countSubstring

DLLEXPORT int countSubstring(WolframLibraryData libData, mint Argc, MArgument *Args, MArgument Res)
{
	char *instring = MArgument_getUTF8String(Args[0]);
	char *substring = MArgument_getUTF8String(Args[1]);
	mint i, n = strlen(instring);
	mint slen = strlen(substring);
	mint c = 0;

	if (n > slen) {
		n -= slen;
		for (i = 0; i <= n; i++) {
			if (!strncmp(instring + i, substring, slen)) {
				c++;
			}
		}
	}

	MArgument_setInteger(Res, c);

	libData->UTF8String_disown(instring);
	libData->UTF8String_disown(substring);
	
	return 0;
}
开发者ID:qzmfranklin,项目名称:test,代码行数:24,代码来源:demo_string.c

示例4: sizeof

EXTERN_C DLLEXPORT int read_raw_image(WolframLibraryData libData, mint Argc, MArgument *Args, MArgument res) {
	int err;
	int check;
	MImage out;
	char * file;
	libraw_data_t *iprc = libraw_init(0);
	libraw_processed_image_t * img;
	WolframImageLibrary_Functions imgFuns = libData->imageLibraryFunctions;

	err = LIBRARY_FUNCTION_ERROR;
	file = MArgument_getUTF8String(Args[0]);

	libraw_open_file(iprc, file);
	libraw_unpack(iprc);

	iprc->params.output_bps = 8;

	check = libraw_dcraw_process(iprc);
	if (check != LIBRAW_SUCCESS) goto cleanup;

	img = libraw_dcraw_make_mem_image(iprc, &check);
	if (img == NULL) goto cleanup;
	if (img->type != LIBRAW_IMAGE_BITMAP || img->colors != 3) goto cleanup;
	
	if (img->bits == 16) {
		raw_t_ubit16 * raw_data = (raw_t_ubit16*)img->data;
		imgFuns->MImage_new2D(img->width, img->height, 3, MImage_Type_Bit16, MImage_CS_RGB, 1, &out);
		memcpy(imgFuns->MImage_getBit16Data(out), raw_data, img->width * img->height * 3 * sizeof(raw_t_ubit16));
	} else if (img->bits == 8) {
		raw_t_ubit8 * raw_data = (raw_t_ubit8*)img->data;
		imgFuns->MImage_new2D(img->width, img->height, 3, MImage_Type_Bit8, MImage_CS_RGB, 1, &out);
		memcpy(imgFuns->MImage_getByteData(out), raw_data, img->width * img->height * 3 * sizeof(raw_t_ubit8));
	} else {
		goto cleanup;
	}
	
	MArgument_setMImage(res, out);
	err = LIBRARY_NO_ERROR;

cleanup:
	libData->UTF8String_disown(file);
	libraw_dcraw_clear_mem(img);
	return err;
}
开发者ID:Jazmann,项目名称:Color-Space-WriteUp,代码行数:44,代码来源:image_external.c

示例5: WolframLibrary_uninitialize

DLLEXPORT void WolframLibrary_uninitialize(WolframLibraryData libData) 
{
	if (string)
		libData->UTF8String_disown(string);
}
开发者ID:qzmfranklin,项目名称:test,代码行数:5,代码来源:demo_string.c


注:本文中的WolframLibraryData::UTF8String_disown方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。