小编War*_*tin的帖子

链接器错误LNK2038:在发布模式下检测到不匹配

我正在尝试将我的小应用程序从Win XP和VS 2005移植到Win 7和VS 2010.

该应用程序在调试模式下编译并运行顺利,但在发布模式下,我收到以下错误:

pcrecpp.lib(pcrecpp.obj) : error LNK2038: mismatch detected for 
'_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in LoginDlg.obj
Run Code Online (Sandbox Code Playgroud)

我应该在哪里开始检查?

c++ linker pcre visual-studio-2010 release-mode

38
推荐指数
3
解决办法
6万
查看次数

首先调用DllMain()或全局静态对象构造函数?

我正在编写一个定义全局静态对象的DLL.

在对象的构造函数中,我正在做一些可能成功或可能不成功的初始化.

是否有可能在DllMain()中表示初始化过程的成功或失败?首先叫哪两个?

谢谢.

dll static constructor global-variables object

14
推荐指数
1
解决办法
6055
查看次数

如何在没有声明变量的情况下删除VS警告C4091:'typedef':忽略'SPREADSHEET'左侧

我的代码中通过相同的声明多次触发此警告,其内容如下:

// Spreadsheet structure
typedef struct SPREADSHEET
{    
      int ID;               // ID of the spreadsheet    
      UINT nLines;          // Number of lines

      void CopyFrom(const SPREADSHEET* src)
      {
           ID = src->ID;
           nLines = src->nLines;
      }
};
Run Code Online (Sandbox Code Playgroud)

我不想只是关掉那个警告,

而是更改代码,以便警告不会出现!

注意:我不想在这里声明任何变量(它是一个头文件),只定义结构'SPREADSHEET'应包含的内容......

c++ compiler-construction struct warnings typedef

13
推荐指数
3
解决办法
3万
查看次数

你怎么看待无所不在的"测试,测试,测试!" 原理?

在过去,编程习惯涉及较少的猜测.我会编写一些代码行,并且100%确定代码的作用以及它不会一目了然.错误主要是拼写错误,但与功能无关.

在过去的几年里,我认为这种"试错"编程有一种趋势:编写代码(就像在草稿中一样),然后迭代调试,直到程序的行为符合要求.测试,再次测试,然后再测试.有趣的是,在我的Visual Studio中,"运行"按钮已被标记为"调试"的按钮所取代(=我知道你有一些错误!).我不得不承认,在我编写的几个应用程序中,我无法保证无错误的代码.

你怎么看 ?或者我们的系统现在过于复杂(浏览器/ OS/Service Pack兼容性等),这证明了在所有类型的环境中进行测试的合理性.

testing debugging

9
推荐指数
2
解决办法
313
查看次数

为什么我用这行代码得到缓冲区溢出错误?

我只有一行代码,这是:

pcrecpp::RE re("abc");
Run Code Online (Sandbox Code Playgroud)

在一个函数内部OnBnClickedButtonGo().此功能在发布模式下失败,但在调试模式下可以正常工作.

(我在Windows XP上使用Visual Studio 8.)

错误消息是:

A buffer overrun has occurred in testregex.exe which has corrupted the program's
internal state. Press Break to debug the program or Continue to terminate
the program.
For more details please see Help topic 'How to debug Buffer Overrun Issues'.
Run Code Online (Sandbox Code Playgroud)

我怀疑它是它的析构函数,它是隐形的和隐含的......但我真的不知道.

PS:我静态链接到PCRE lib版本7.8.PS2:不太相关,但可以帮助一些链接到PCRE库的人(我花了几个小时来解决它):包括该行#define PCRE_STATIC.

pcre destructor buffer-overrun

5
推荐指数
1
解决办法
1511
查看次数

使用PugiXML进行Unicode XML解析的示例代码

我试图在教程中通过谷歌搜索找到一些代码,没有运气.

如果有人使用过PugiXml,你能帮帮我吗?

我的主要麻烦是Unicode,否则库很容易使用.

提前致谢.

c++ xml unicode parsing

5
推荐指数
1
解决办法
3959
查看次数

C++:为什么我不能用sprintf打印const char*?

我在这里错过了什么?这让我疯了!

我有一个返回const char*函数

const char* Notation() const
{
    char s[10];
    int x=5;
    sprintf(s, "%d", x);
    return s;
}
Run Code Online (Sandbox Code Playgroud)

现在在代码的另一部分我这样做:

.....
.....
char str[50];       
sprintf(str, "%s", Notation());
.....
.....
Run Code Online (Sandbox Code Playgroud)

但是str保持不变.

如果相反,我这样做:

.....
.....
char str[50];
str[0]=0;
strcat(str, Notation());
.....
.....
Run Code Online (Sandbox Code Playgroud)

str正确设置.

我想知道为什么sprintf不能按预期工作......

c++ string printf pointers const

5
推荐指数
2
解决办法
2万
查看次数

从Visual Studio 2010到2012 RC编译MFC应用程序将导致LNK2038

我的项目在VS 2010中的调试和发布模式下编译并运行正常.今天我尝试用VS 2012编译它,我收到了这个错误:

1>  Generating Code...
1>pcrecppd.lib(pcrecpp.obj) : error LNK2038: mismatch detected for '_MSC_VER': 
value '1600' doesn't match value '1700' in NamesEditorDlg.obj
Run Code Online (Sandbox Code Playgroud)

我在代码中搜索"_MSC_VER"但我找不到任何匹配项.我也找不到"1600"或"1700".

所以我想知道如何解决这个问题.

c++ mfc linker-errors visual-studio-2010 visual-studio-2012

5
推荐指数
1
解决办法
1万
查看次数

如何从Subversion存储库中删除意外放入大文件(4GB)?

那么这个文件被错误地放入了回购中并被删除并添加到忽略列表中.但是,因为它曾经存在,我的repo现在大小超过4GB,一些SVN功能需要数年时间才能完成.我将不胜感激任何帮助和提示.(如果重要,我会使用XP)

svn windows repository

4
推荐指数
2
解决办法
1344
查看次数

当要测试的类很复杂时,如何编写单元测试?

我正在尝试使用TDD使用VS 2010在C++中编写步步高游戏.

我已经设置了CxxTest来编写测试用例.

第一堂课是

class Position
{
public:
...
...
bool IsSingleMoveValid(.....)
...
...
}
Run Code Online (Sandbox Code Playgroud)

我想为函数IsSingleMoveValid()编写一个测试,我猜测试应该证明函数正常工作.不幸的是,有很多情况要测试,即使我测试了几个案例,有些可能会逃脱.

你有什么建议?TDD如何处理这些问题?

c++ tdd unit-testing code-coverage cxxtest

4
推荐指数
1
解决办法
646
查看次数