标签: visual-c++-6

我可以在一个VC++ 6.0编译的应用程序中嵌入Strawberry Perl,或者在编译器不匹配的情况下使用Inline :: C吗?

我期待在用VC++ 6.0编译的大型C++应用程序中嵌入perl 5.10.这导致两个问题.

1)简单地使用Strawberry Perl作为依赖项而不是用VC++ 6.0编译我自己的perl是一个坏主意吗?鉴于编译器不匹配,Strawberry会不会工作?我认为草莓是用mingw编写的.我宁愿不必保持自己的自定义perl构建.

2)如果我去草莓路线,Inline :: C会在嵌入式应用程序中运行吗?你有VC++ 6.0代码调用mingw编译草莓反过来调用用户mingw编译代码.对于我试图用嵌入式perl解释器实现的内容,Inline :: C将是一个非常棒的功能.

perl mingw visual-c++-6 strawberry-perl visual-c++

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

宏的问题

嗨,

有人可以帮助我理解为什么SQUARE(x)的值是49?

我使用的是Visual C++ 6.0.

#define SQUARE(X) X * X

int main(int argc, char* argv[])
{
    int y = 5;

    printf("%d\n",SQUARE(++y));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ macros visual-c++-6

5
推荐指数
4
解决办法
4315
查看次数

如何在Windows 7 x64上使用Visual C++ 6进行调试?

肯定答案是"你不能"或"使用XP模式",但我想知道它是否可能.

我遇到的问题是每当我调试一些应用程序并遇到断点时,当我停止调试器时,调试对象仍然卡住.它不能被杀死,我不能附加另一个调试器(它说它已经被调试).在关闭Visual C++之前,它不会消失.

这是在Windows 7 64位安装上的开销.VC安装了SP 6.

debugging 64-bit visual-c++-6 visual-c++ windows-7

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

在Windows 10上安装visual studio 6

在Windows 7,8和8.1中,可以通过在' %windir% '和' %windir%\ system32 '中创建虚拟文件' msjava.dll ' 来安装visual studio 6,以便vs6安装程序执行不会因为安装java虚拟机而中断.

这个措施对我来说没有成功,两台升级到Windows 10,一台来自Windows 7教授64位,一台来自Windows 8.1家庭64位.

任何人都可以告诉我这可能在Windows 10中起作用吗?

c++ installation visual-c++-6 windows-10

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

如何将wstring中的Unix时间戳转换为char数组中的格式化日期

首先,请以C ++的新手身份与我联系

最终目标是将日期以DDMMYY格式(例如“ 120319”)存储在char具有6个字节的数组中。

首先,我有一个wstring检索Unix时间戳,例如“ 155xxxxxxx”。

std::wstring businessday = L"155xxxxxxx"
Run Code Online (Sandbox Code Playgroud)

然后,将其转换为wchar_t*

const wchar_t* wcs = businessday.c_str();
Run Code Online (Sandbox Code Playgroud)

之后,在声明10个字节的char数组之后,将转换wchar_t*为多字节字符串。

          char buffer[10];
          int ret;

          printf ("wchar_t string: %ls \n",wcs);

          ret = wcstombs ( buffer, wcs, sizeof(buffer) );
          if (ret==32) buffer[31]='\0';
          if (ret) printf ("multibyte string: %s \n",buffer);
Run Code Online (Sandbox Code Playgroud)

因此,现在char名为的数组buffer包含Unix时间戳格式的字符串,即“ 155xxxxxxx”。

如何char使用类似DDMMYY的日期格式(即“ 120319”)将其转换为6个字节的数组?

我正在使用标准版本的C ++(MS VC ++ 6)


回应user4581301的回答

long myLong = std::stol( buffer );
time_t timet = (time_t)myLong; …
Run Code Online (Sandbox Code Playgroud)

c++ visual-c++-6

5
推荐指数
0
解决办法
225
查看次数

在代码中捕获异常

我正在尝试这段代码来检查是否正在捕获除零异常:

int main(int argc, char* argv[])
{
    try
    {
      //Divide by zero
        int k = 0;
        int j = 8/k;
    }
    catch (...)
    {
        std::cout<<"Caught exception\n";
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我使用VC6编译它时,执行了catch处理程序并且输出为"Caught exception".但是,当我使用VS2008编译它时,程序崩溃而不执行catch块.可能是造成差异的原因是什么?

c++ exception visual-c++-6 visual-studio-2008 visual-c++

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

/TSAWARE 链接器标志对 PE 可执行文件有什么作用?

将 /TSAWARE 链接器标志添加到我的一个项目 (Visual Studio 6) 后,我惊讶地发现 PE 文件 (.idata) 中有一个新部分。如果我不设置标志,导入将合并到 .rdata 中。

为了说明“问题”,我们从一个简单的控制台程序开始:

#include <stdio.h>
int main() 
{
    printf("hello world\n");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

并编译: cl /Og /O1 /GF /WX /c main.c

然后链接

  • link /MACHINE:IX86 /SUBSYSTEM:CONSOLE /RELEASE /OUT:a.exe main.obj
  • link /MACHINE:IX86 /SUBSYSTEM:CONSOLE /RELEASE /OUT:b.exe /TSAWARE main.obj

让我们比较 dumpbin 输出:

Dump of file a.exe

File Type: EXECUTABLE IMAGE

  Summary

        4000 .data
        1000 .rdata
        5000 .text

Dump of file b.exe

File Type: EXECUTABLE IMAGE

  Summary

        4000 .data
        1000 .idata
        1000 .rdata
        5000 …
Run Code Online (Sandbox Code Playgroud)

windows linker visual-c++-6 portable-executable visual-c++

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

Visual Studio 2010的精度问题

我有一个用Microsoft Visual C++ 6.0编写的应用程序.现在我使用C#在Visual Studio 2010中重写了应用程序,但由于精度问题,结果不匹配.其中一个精确问题是以下问题.

float a = 1.0f;

float b = 3.0f;

float c = a / b;
Run Code Online (Sandbox Code Playgroud)

在Visual Studio 2010中运行时,这是C#代码,给出cvalue =0.333333343

但是相同的代码,在值定义中的值之后删除f,当在Visual C++ 6.0上运行时给出c值= 0.333333.

任何人都可以解决它并解释在Visual Studio和Visual C++ 6.0中获得相同c值的方法吗?


实际上,这些值来自观察窗口.我开始知道不同版本的visual studio在浮点格式表示方面可能有所不同.因此,手表中的值可能没用.这就是我在两个visual studio版本中打印值的原因,结果如下.使用visual c ++语言的visual studio 6.0,它是0.333333(六个3)

但是使用C#语言的visual studio 10它是0.3333333(七个3)

那么有人可以帮助我使我的C#程序产生与visual C++相同的结果吗?(即如何使浮动操作在两个版本上产生相同的结果???)

c# visual-c++-6 visual-studio-2010 floating-point-precision

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

我可以将 VC9 编译的 PHP 与 Apache 一起使用吗?

根据Windows Binaries下载页面http://windows.php.net/download/

不要将 VC9 版本与 apache.org 二进制文件一起使用

这还成立吗?唯一的 VC6 二进制文件适用于 PHP 5.2,我相信 Microsoft 不再支持 VC6?

php apache visual-c++-6 visual-c++-2008

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

从float到double的转换产生不同的结果 - 相同的代码,相同的编译器,相同的OS

编辑:有关答案的更新,请参阅问题的结尾.

我花了几周的时间来追踪我维护的一个软件中的一个非常奇怪的错误.简而言之,有一个旧的软件正在分发,还有一个新的软件需要匹配旧的输出.这两个人(在理论上)依赖于一个共同的图书馆.[1] 但是,我无法复制原始版本库生成的结果,即使两个版本的库的源匹配.有问题的实际代码非常简单.原始版本看起来像这样("voodoo"评论不是我的):[2]

// float rstr[101] declared and initialized elsewhere as a global

void my_function() {
    // I have elided several declarations not used until later in the function
    double tt, p1, p2, t2;
    char *ptr;

    ptr = NULL;
    p2 = 0.0;
    t2 = 0.0; /* voooooodoooooooooo */

    tt = (double) rstr[20];
    p1 = (double) rstr[8];

    // The code goes on and does lots of other things ...
}
Run Code Online (Sandbox Code Playgroud)

我所包含的最后一个陈述是不同行为的出现.在原始程序中,rstr[8]具有值101325.,并在将其转换为 double[3]并赋值后,p1具有该值101324.65625 …

c x86 assembly visual-c++-6 disassembly

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