c++
文章平均质量分 57
Scholfield
这个作者很懒,什么都没留下…
展开
-
用enable_shared_from_this在类的成员函数中获得指向当向前对象的shared_ptr
下面的代码编译没有问题,运行时错误。错误发生在voidtest1()销毁ptr时,认为ptr是最后一个指向A对象的shared_ptr,于是它试图销毁此对象。按理说main函数中有一个shared_ptr指向A的对象,那么test1()因该不会销毁ptr指向的对象。单步跟踪后,发现test1()::ptr的use_count_等于1(我认为因该是2)。// class A#includ原创 2008-09-05 20:45:00 · 778 阅读 · 0 评论 -
Visaul C++ 6.0创建并使用DLL
首先创建一个Win32 Dynamic-Link Library项目MyDll。会产生一个MyDll.cpp文件,里面有DllMain函数。它是DLL的入口点,就像main函数一样。目前还没有修改它。 导出类 类的定义和创建普通类相同,只是在申明时加上“_declspec(dllexport)”。 1: class _declspec(dllexport原创 2009-12-21 23:12:00 · 688 阅读 · 0 评论 -
LPCTSTR类型
如何理解LPCTSTR类型? L表示long指针 这是为了兼容Windows 3.1等16位操作系统遗留下来的,在win32中以及其他的32为操作系统中, long指针和near指针及far修饰符都是为了兼容的作用。没有实际意义。 P表示这是一个指针 C表示是一个常量 T表示在Win32环境中, 有一个_T宏 这个宏用来表示你的字符是否使用UNICODE, 如果你的程序定义了UNICODE或者其他相关的宏,那么这个字符或者字符串将被作为UNICODE字符串,否则就是标准的ANSI字符串原创 2010-07-29 16:21:00 · 684 阅读 · 0 评论 -
warning C4251: 'vectortemp::m_Vector' : class 'std::vector' needs to have dll-interface to be used by clients of class 'vectorte
意思说vector需要用dll接口(__declspec(dllimport))从而使其被客户类vectortemp使用。__declspec(dllimport)用于所有需要从dll导入的对象,包括变量,函数,类等。而且必须用在定义前面。如果vectortemp中使用的不是一个模板类vector,这里会报错。因为头文件vector里只是vector类的声明。在vector实例化时,编译器会生成一份和头文件中一样的代码,一份本地类定义,当然加上模板参数,比如vector。所以用模板类不会出错,但编译器会友好原创 2010-08-07 16:20:00 · 3451 阅读 · 0 评论 -
Visual C++中的数据类型转换小结
CString与double,int互转 CString str = “33.33”; double d1 = _wtof((LPCTSTR)str); //使用Unicode编码 double d2 = atof((LPCTSTR)str); //不使用Unicode编码 int i1 = _wtoi((LPCTSTR)str); int i2 = atoi((LPCTSTR)str); //==========================================原创 2010-06-25 15:54:00 · 763 阅读 · 0 评论