⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fun.cpp

📁 Thinkinc++English 电子书籍,英文版
💻 CPP
字号:
// Fun.cpp : CFun 的实现

#include "stdafx.h"
#include "Fun.h"
#include ".\fun.h"


// CFun

STDMETHODIMP CFun::Add(LONG n1, LONG n2, LONG* pVal)
{
	*pVal = n1 + n2;

	return S_OK;
}

STDMETHODIMP CFun::Cat(BSTR s1, BSTR s2, BSTR* pVal)
{
/************** 完全用 API 方式实现的 BSTR 字符串连接 ***************
	int nLen1 = ::SysStringLen( s1 );
	int nLen2 = ::SysStringLen( s2 );

	*pVal = ::SysAllocStringLen( s1, nLen1 + nLen2 );
	if( nLen2 )
	{
		::memcpy( *pVal + nLen1, s2, nLen2 * sizeof(WCHAR) );
//		wcscat( *pVal, s2 );	// 如果 s2 中包含 L'\0',则会被截断。
	}

	return S_OK;
*********************************************************************/


//*************** 用 CComBSTR 包装类实现 BSTR 字符串连接 *************
	CComBSTR sResult( s1 );
	sResult.AppendBSTR( s2 );

	*pVal = sResult.Copy();		// 产生另一个副本
//	*pVal = sResult.Detach();	// 使 CComBSTR 对象和内部 BSTR 指针脱离。由于不产生副本,速度稍快。

	return S_OK;
//********************************************************************/
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -