您的位置:首页 > 其它

如何在VS VC 中DLL使用CString类

2013-12-31 10:08 274 查看
CString类用起来非常方便,可是如果不对默认的工程进行一些手术,就没法使用它

具体的修改方法如下,与大家分享一下。

在stdfax中加入下面的红色部分

// stdafx。h

#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)

#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_

#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000

#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers

#include <afx.h> // 加在这里

// Windows Header Files:

#include <windows.h>

#ifdef _DEBUG

#pragma comment(lib, "libcmtd.lib")

#else

#pragma comment(lib, "libcmt.lib")

#endif

// Local Header Files

#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)

此时你的程序仍然不能使用Cstring,这是因为由于afx.h默认带了一个DllMain,致使要使用CString类需要几个步骤。

因此在你的dllMain之前加入下面的红色部分的代码即可。

#include "stdafx.h"

#ifdef _DEBUG

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

#define new DEBUG_NEW

/////////////////////////////////////////////////////////////////////////////

// global data

// The following symbol used to force inclusion of this module for _USRDLL

#ifdef _X86_

extern "C" { int _afxForceUSRDLL; }

#else

extern "C" { int __afxForceUSRDLL; }

#endif

BOOL APIENTRY DllMain( HANDLE hModule,

DWORD ul_reason_for_call,

LPVOID lpReserved

)

{

return TRUE;

}

转载至 : /article/5484010.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: