你预见到这一切的问题是什么?
visual-studio-2005 visual-c++-6 visual-studio-2008 visual-c++
InterlockedExchange和之间有什么区别InterlockedExchangePointer?
是
if( 0 != InterlockedCompareExchange( ( void** ) &_myVariable
, temp
, 0
) )
Run Code Online (Sandbox Code Playgroud)
和
if( 0 != InterlockedCompareExchangePointer( ( void** ) &_myVariable
, temp
, 0
) )
Run Code Online (Sandbox Code Playgroud)
当量?
我必须将代码移植到VC6,后者不知道这些Interlocked[...]Pointer功能.
编辑:
根据我自己的经验,我知道VC6 非常多,并且没有人会再使用它了.
但是,我不是决策者,对原始问题的回答将受到高度赞赏.
C++ 98 是否支持部分模板规范?
以下代码可以在 C++ 11 下正常编译,但不能在 Visual C++ 6.0 中编译。
所以我想知道语法是否需要略有不同,或者是否不支持:
#include <iostream>
#include <string>
template <typename A, typename B> class Foo
{
public:
static void bar(A a, B b)
{
std::cout << "A";
};
};
template <typename A> class Foo<A, std::string>
{
public:
static void bar(A a, std::string b)
{
std::cout << "B";
};
};
template <typename B> class Foo<std::string, B>
{
public:
static void bar(std::string a, B b)
{
std::cout << "C";
};
};
template <> class …Run Code Online (Sandbox Code Playgroud) 首先,我想知道是否应该同时使用Qt和Windows。如果是这样,我应该使用VC ++ 6.0 IDE还是另一个?
我要求我的团队将我们的vc6应用程序移植到vc2005,他们准备分配一些时间来做同样的事情.现在他们需要知道移植的优势是什么.
我不知道他们真的明白遵守标准合规是什么意思.
帮我列出移植的优势.
我面临的问题是
1)没有标准容器的调试支持
2)无法使用boost库
3)我们使用大量的查询生成但使用非类型安全的CString格式函数
4)花费大量时间来解决vc6问题,例如>>
vector<vector<int>>
Run Code Online (Sandbox Code Playgroud)
在>>之间的空间
c++ porting visual-studio-2005 visual-c++-6 visual-studio-2008
我已将项目复制到新目录,现在工作区将不会加载到vc ++ 6 ide中.没有错误,只有没有工作空间.我已经对dsw和dsp文件进行了差异化,它们是相同的.
使用 Microsoft Visual C++ 6.0 编译 C++ 时有时会出现这样的链接错误:
error LNK2001: unresolved external symbol __imp__close
error LNK2001: unresolved external symbol __imp__read
error LNK2001: unresolved external symbol __imp__lseek
error LNK2001: unresolved external symbol __imp__open
我使用谷歌搜索了很长时间但毫无结果后发现,我的修复是这样的:
不要禁用语言扩展。在“项目设置”对话框的“C/C++”选项卡中,确保未选中“禁用语言扩展”复选框。
函数 close、read、lseek、open 等不是 C 库的标准部分,并且使用#if !__STDC__in的条件编译会跳过这些声明<io.h>。如果您禁用语言扩展,就会发生这种情况。
我每次运行以下简单的代码输出窗口崩溃时都在Vc6中处理openGL
#include <stdio.h>
#include <gl/glut.h>
//#include <gl/glaux.h>
void display(void)
{
glColor3f(255.0f,255.0f,255.0f);
glBegin(GL_QUADS);
glVertex3f(0.0f,0.0f,0.0f);
glVertex3f(0.0f,5.0f,0.0f);
glVertex3f(5.0f,5.0f,0.0f);
glVertex3f(5.0f,0.0f,0.0f);
glVertex3f(0.0f,0.0f,0.0f);
glEnd();
glFlush();
}
void init(void)
{
glViewport(0,0,400,400);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0,4/3,4.0,1000.0);
glMatrixMode(GL_MODELVIEW);
gluLookAt(2.0,2.0,2.0,1.0,2.0,1.0,0.0,1.0,0.0);
}
int main(int argc, char *argv[])
{
glutInit(&argc,argv);
init();
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH);
glutInitWindowPosition(400,400);
glutInitWindowSize(400,400);
glutCreateWindow("Trial");
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我不知道出了什么问题任何boby请帮忙
我有一个MFC Visual C++应用程序似乎无法在类向导中工作,但是,我有一个视图(CServerView),我想添加一个WM_TIMER事件处理程序.
我已经想出了如何打电话CWnd::SetTimer,CWnd::KillTimer但十多年来我没有做过的就是修改消息地图.我不确定我应该为我的CView子类修改的地图是ServerView.cpp文件的这部分,还是ServerView.h中的某些部分:
BEGIN_MESSAGE_MAP(CServerView, CListView)
//{{AFX_MSG_MAP(CServerView)
ON_COMMAND(ID_DRIVER_START, OnDriverStart)
ON_UPDATE_COMMAND_UI(ID_DRIVER_START, OnUpdateDriverStart)
...
// Standard printing commands
END_MESSAGE_MAP()
Run Code Online (Sandbox Code Playgroud)
这可能是一件微不足道的事情,但我面临的两个复杂问题是,关于这一点的在线文档都是针对最近的Visual Studio版本的,我在Visual C++ 6.0中坚持这样做
我有一个自动打印报告的应用程序。我正在使用 CPrintDialog 来获取打印机 DC。
void CMyClass::PrintReport()
{
CDC dc;
CPrintDialog printDlg(FALSE);
printDlg.GetDefaults ();
::DeleteDC( printDlg.m_pd.hDC );
LPDEVMODE pDevMode = printDlg.GetDevMode();
if(pDevMode)
{
pDevMode->dmOrientation = DMORIENT_LANDSCAPE;
::GlobalUnlock(pDevMode);
}
HDC hDC;
if( (hDC = printDlg.CreatePrinterDC()) == NULL )
{
::GlobalFree( printDlg.m_pd.hDevMode );
::GlobalFree( printDlg.m_pd.hDevNames );
return;
}
::GlobalFree( printDlg.m_pd.hDevMode );
::GlobalFree( printDlg.m_pd.hDevNames );
dc.Attach(hDC); // Attach a printer DC
dc.m_bPrinting = TRUE;
dc.SetMapMode(MM_LOENGLISH);
/*
Printing Logic using dc
*/
}
Run Code Online (Sandbox Code Playgroud)
当我在控制台应用程序附带的调试模式下运行我的应用程序时,这很好用。
但是,当我将应用程序作为 Windows 服务运行时,CPrintDialog 创建失败。
我做错了什么吗?:( 请帮我。
注意:应用程序设计为在安装中作为服务运行。
visual-c++-6 ×10
c++ ×5
mfc ×2
visual-c++ ×2
atomic ×1
c ×1
c++98 ×1
interlocked ×1
opengl ×1
porting ×1
printing ×1
qt ×1
templates ×1
windows ×1
workspace ×1