Quantcast
Channel: Visual C forum
Viewing all 15302 articles
Browse latest View live

Regarding Copy Constructor

$
0
0

Here is a sample code which have copy constructor.

class Point
{
private:
    int x, y;
public:
    Point(int x1, int y1) { x = x1; y = y1; }

    // Copy constructor 
    Point(const Point &p2) { x = p2.x; y = p2.y; }

    int getX() { return x; }
    int getY() { return y; }
};

int main()
{
    Point p1(10, 15); // Normal constructor is called here 
    Point p2 = p1; // Copy constructor is called here 

    // Let us access values assigned by constructors 
    cout << "p1.x = " << p1.getX() << ", p1.y = " << p1.getY();
    cout << "\np2.x = " << p2.getX() << ", p2.y = " << p2.getY();
}

If run this code, the result is like following.

And without copy constructor of the Point class, the result is the same.

Then, why we need copy constructor in this case?


How do I change the access rights of a removable disk?

$
0
0

I want to change the device access right using the SetupDiSetDeviceRegistryProperty () API.

I set the following permissions using the SPDRP_SECURITY_SDS property.

 - Everyone group: Block READ
 - Administrator group: Allow READ

And the set security SDS is as follows.

D:(D;;KR;;;WD)(A;;KR;;;BA)

And I restarted the device with DICS_DISABLE, DICS_ENABLE by setting DIF_PROPERTYCHANGE as a parameter of SetupDiCallClassInstaller() API.

However, it is still possible to create files on USB from the administrator account.

Is my SDS incorrect?
How do I change the device's read or write permission?

Regarding Copy Constructor

$
0
0

Here is a sample code which have copy constructor.

class Point
{
private:
    int x, y;
public:
    Point(int x1, int y1) { x = x1; y = y1; }

    // Copy constructor 
    Point(const Point &p2) { x = p2.x; y = p2.y; }

    int getX() { return x; }
    int getY() { return y; }
};

int main()
{
    Point p1(10, 15); // Normal constructor is called here 
    Point p2 = p1; // Copy constructor is called here 

    // Let us access values assigned by constructors 
    cout << "p1.x = " << p1.getX() << ", p1.y = " << p1.getY();
    cout << "\np2.x = " << p2.getX() << ", p2.y = " << p2.getY();
}

If run this code, the result is like following.

And without copy constructor of the Point class, the result is the same.

Then, why we need copy constructor in this case?

How to control WAVE_MAPPER mixer on 64-bit windows

$
0
0

From https://docs.microsoft.com/en-us/windows/win32/api/mmeapi/nf-mmeapi-mixeropen 

1) Can't use the WAVE_MAPPER constant:

uMxId

Identifier of the mixer device to open. Use a valid device identifier or any HMIXEROBJ (see the mixerGetID function for a description of mixer object handles).A "mapper" for audio mixer devices does not currently exist, so a mixer device identifier of -1 is not valid.

2) Can't use the old workaround of opening the device first with waveOutOpen and then using the handle:

"On 64-bit systems, this function may not work as expected in situations where you pass a 64-bit LPHWAVEOUT pointer in the uMxId parameter, because the uMxId parameter is truncated to 32 bits."

Are we just supposed to accept that there's no way to control the mixer?


There's no Local tab that will show all local variables value when Visual Studio is debugging

$
0
0

How could there's no any Local tab that will show all local variables value when Visual Studio is debugging.

Only Autos and other three tabs

How to solve this, please help!


Regarding Copy Constructor

$
0
0

Here is a sample code which have copy constructor.

class Point
{
private:
    int x, y;
public:
    Point(int x1, int y1) { x = x1; y = y1; }

    // Copy constructor 
    Point(const Point &p2) { x = p2.x; y = p2.y; }

    int getX() { return x; }
    int getY() { return y; }
};

int main()
{
    Point p1(10, 15); // Normal constructor is called here 
    Point p2 = p1; // Copy constructor is called here 

    // Let us access values assigned by constructors 
    cout << "p1.x = " << p1.getX() << ", p1.y = " << p1.getY();
    cout << "\np2.x = " << p2.getX() << ", p2.y = " << p2.getY();
}

If run this code, the result is like following.

And without copy constructor of the Point class, the result is the same.

Then, why we need copy constructor in this case?

MFC CFormView control display issue

$
0
0
Hi Experts,
I had developed a MFC based VC++(2010) application in MDI application.
I have two panels left side panel having tree control and right side panel having list ctrl.
The tree ctrl item selected details will be reflected in list control. i.e. in the right side panel.
But the left side panel which is having the tree ctrl is not displaying properly.
[![problem is highlighted in red color][1]][1]

  [1]: https://i.stack.imgur.com/ALKPm.jpg
One thing I noticed that if I minimize the CformView and restore it, the issue has been resolved.
So , it look like some paint issue.
So I created the following function:-
    void CMyFormView::OnPaint()
    {
     if (IsIconic())
    {
     CPaintDC dc(this); // device context for painting
     SendMessage(WM_ICONERASEBKGND, (WPARAM)dc.GetSafeHdc(), 0);
     // Center icon in client rectangle
     int cxIcon = GetSystemMetrics(SM_CXICON);
     int cyIcon = GetSystemMetrics(SM_CYICON);
     CRect rect;
     GetClientRect(&rect);
     int x = (rect.Width() - cxIcon + 1) / 2;
     int y = (rect.Height() - cyIcon + 1) / 2;
     // Draw the icon
     //dc.DrawIcon(x, y, m_hIcon);
    }
    else
    {
     CFormView::OnPaint();
    }
    }

Visual Studio MFC MDI , OnSaveDocument format error

$
0
0

I create MFC MDI project on CRichEditView / CRichEditDoc.

I press save 123.txt through OnSaveDocument , then i open 123.txt

The words and format are error.

The words "456" is lose...

Here is my code:
BOOL CMyEditDoc::OnSaveDocument(LPCTSTR lpszPathName)
{
m_bRTF = FALSE;

CString allcode;
CRichEditView* pView = GetView();
if (NULL == pView)
return false;
CRichEditCtrl& edit = pView->GetRichEditCtrl();
edit.GetWindowText(allcode);

CFile file;
int length = allcode.GetLength();
try
{
file.Open(lpszPathName, CFile::modeCreate | CFile::modeWrite);
file.Write((LPCTSTR)allcode, length);
file.Close();
}
catch (CFileException* e)
{
ASSERT(false);
e->m_cause;
return false;
}
SetModifiedFlag(false);
return true;
}


Regarding Copy Constructor

$
0
0

Here is a sample code which have copy constructor.

class Point
{
private:
    int x, y;
public:
    Point(int x1, int y1) { x = x1; y = y1; }

    // Copy constructor 
    Point(const Point &p2) { x = p2.x; y = p2.y; }

    int getX() { return x; }
    int getY() { return y; }
};

int main()
{
    Point p1(10, 15); // Normal constructor is called here 
    Point p2 = p1; // Copy constructor is called here 

    // Let us access values assigned by constructors 
    cout << "p1.x = " << p1.getX() << ", p1.y = " << p1.getY();
    cout << "\np2.x = " << p2.getX() << ", p2.y = " << p2.getY();
}

If run this code, the result is like following.

And without copy constructor of the Point class, the result is the same.

Then, why we need copy constructor in this case?

There's no Local tab that will show all local variables value when Visual Studio is debugging

$
0
0

How could there's no any Local tab that will show all local variables value when Visual Studio is debugging.

Only Autos and other three tabs

How to solve this, please help!


Visual Studio MFC MDI, CMFCToolBar disable

$
0
0

I want to set a button to disable on toolbar.

For example:

Set print button disable when the mouse press "View".

Compiling with CMake & Clang from Visual Studio adds unwanted flags to the compiler call

$
0
0

In my CMakeSetting.json I define a configuration clang-cl-x64-Debug (see the configuration in question at the bottom) (relevant settings are: generator: Ninja, inheritEnviroments: clang_cl_x64 and CMAKE_CXX_FLAGS).

The call generated (you find an example of an actual call in the excerpt of the build protocol below) for the clang compiler contains additional flags (the problematic flag is: -Werror=all).

The flags I want are, what I set in CMAKE_CXX_FLAGS (CMAKE_CXX_FLAGS_DEBUG is left empty):
-v -m64 -fdiagnostics-absolute-paths -fms-extensions -fdelayed-template-parsing -fms-compatibility -stdlib=libstdc++ -D_GLIBCXX_DEBUG /DWIN32 /D_WINDOWS /W3 /GR /EHsc -D_USE_MATH_DEFINES=ON -D_WIN32_WINNT=0x0601 -DBOOST_USE_WINDOWS_H=ON -DBOOST_ALL_DYN_LINK=ON -Wno-error=all

What I get is:
-v -m64 -fdiagnostics-absolute-paths -fms-extensions -fdelayed-template-parsing -fms-compatibility -stdlib=libstdc++ -D_GLIBCXX_DEBUG /DWIN32 /D_WINDOWS /W3 /GR /EHsc -D_USE_MATH_DEFINES=ON -D_WIN32_WINNT=0x0601 -DBOOST_USE_WINDOWS_H=ON -DBOOST_ALL_DYN_LINK=ON -Wno-error=all -Werror=all -Werror=extra -Werror=uninitialized -Werror=unreachable-code -Werror=unused-variable -Werror=unreachable-code -Wno-error=cpp -Wpedantic -Werror=strict-overflow=2 -Wno-error=unused-local-typedef -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC -fcolor-diagnostics -ftemplate-depth=1024 -Wno-unused-command-line-argument -std=c++14 /MDd /Zi /Ob0 /Od /RTC1 -fno-inline -fno-omit-frame-pointer -wd4996 -wd4068 -wd4715 -wd4351 -wd4503

The additional flags prevent a third party open source framework (https://project-osrm.org/) from compiling. I do not want to change the source code to be compliant with the elevated warning generated by -Werror=all, because I do not want to change the code at all.

Here are some examples of build errors, which I want to be warnings only:

C:\Projects\OSRM\depend\osrm\include\extractor\intersection\node_based_graph_walker.hpp(60,39): error : private field 'barrier_nodes' is not used [-Werror,-Wunused-private-field]
      const std::unordered_set<NodeID> &barrier_nodes;
                                        ^
C:\Projects\OSRM\depend\osrm\include\extractor\intersection\node_based_graph_walker.hpp(61,34): error : private field 'turn_lanes_data' is not used [-Werror,-Wunused-private-field]
      const TurnLanesIndexedArray &turn_lanes_data;
                                   ^
  75 warnings and 9 errors generated.
  [7/150] C:\PROGRA~2\MICROS~1\2019\ENTERP~1\VC\Tools\Llvm\bin\clang-cl.exe  /nologo -TP -DBOOST_ENABLE_ASSERT_HANDLER -DBOOST_FILESYSTEM_NO_DEPRECATED -DBOOST_RESULT_OF_USE_DECLTYPE -DBOOST_SPIRIT_USE_PHOENIX_V3 -DNOMINMAX -DOSRM_PROJECT_DIR=\"C:/Projects/OSRM/depend/osrm\" -DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_NO_WARNINGS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I..\..\..\include -I..\..\..\build\include -I..\..\..\third_party\flatbuffers\include -I..\..\..\third_party\sol2 -I..\..\..\third_party\variant\include -I..\..\..\third_party\rapidjson\include -I..\..\..\third_party\microtar\src -I..\..\..\third_party\geometry.hpp-0.9.2\include -I..\..\..\third_party\cheap-ruler-cpp-2.5.4\include -I..\..\..\third_party\protozero\include -I..\..\..\third_party\vtzero\include -I..\..\..\third_party\libosmium\include -IC:\Projects\OSRM\depend\boost\boost_1_70_0 -I"C:\Program Files\intel\TBB\include" -I..\..\..\osrm-deps\libs\include -v -m64 -fdiagnostics-absolute-paths -fms-extensions -fdelayed-template-parsing -fms-compatibility -stdlib=libstdc++ -D_GLIBCXX_DEBUG /DWIN32 /D_WINDOWS /W3 /GR /EHsc -D_USE_MATH_DEFINES=ON -D_WIN32_WINNT=0x0601 -DBOOST_USE_WINDOWS_H=ON -DBOOST_ALL_DYN_LINK=ON -Wno-error=all -Werror=all -Werror=extra  -Werror=uninitialized -Werror=unreachable-code -Werror=unused-variable -Werror=unreachable-code -Wno-error=cpp -Wpedantic -Werror=strict-overflow=2 -Wno-error=unused-local-typedef -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC -fcolor-diagnostics -ftemplate-depth=1024 -Wno-unused-command-line-argument -std=c++14 /MDd /Zi /Ob0 /Od /RTC1 -fno-inline -fno-omit-frame-pointer   -wd4996 -wd4068 -wd4715 -wd4351 -wd4503 /showIncludes /FoCMakeFiles\GUIDANCE.dir\src\extractor\intersection\node_based_graph_walker.cpp.obj /FdCMakeFiles\GUIDANCE.dir\ -c ..\..\..\src\extractor\intersection\node_based_graph_walker.cpp
  FAILED: CMakeFiles/GUIDANCE.dir/src/extractor/intersection/node_based_graph_walker.cpp.obj

Where are the additional flags comming from? How can I get rid of them?

Many thanks in advance!

The configuration:

    {
      "name": "clang-cl-x64-Debug",
      "generator": "Ninja",
      "configurationType": "Debug",
      "buildRoot": "${projectDir}\\out\\build\\${name}",
      "installRoot": "${projectDir}\\out\\install\\${name}",
      "cmakeCommandArgs": "",
      "buildCommandArgs": "-v",
      "ctestCommandArgs": "",
      "inheritEnvironments": [ "clang_cl_x64" ],
      "variables": [
        {
          "name": "CMAKE_ARCHIVE_OUTPUT_DIRECTORY",
          "value": "${projectDir}/../../out/clang_cl_x64/debug",
          "type": "FILEPATH"
        },
        {
          "name": "CMAKE_LIBRARY_OUTPUT_DIRECTORY",
          "value": "${projectDir}/../../out/clang_cl_x64/debug",
          "type": "FILEPATH"
        },
        {
          "name": "CMAKE_RUNTIME_OUTPUT_DIRECTORY",
          "value": "${projectDir}/../../out/clang_cl_x64/debug",
          "type": "FILEPATH"
        },
        {
          "name": "BOOST_ROOT",
          "value": "${projectDir}/../boost/boost_1_70_0",
          "type": "FILEPATH"
        },
        {
          "name": "TBB_ARCH_PLATFORM",
          "value": "intel64_Vc14.2",
          "type": "STRING"
        },
        {
          "name": "TBB_ROOT",
          "value": "${projectDir}../tbb",
          "type": "STRING"
        },
        {
          "name": "EXPAT_LIBRARY",
          "value": "${projectDir}/osrm-deps/libs/lib/libexpat.lib",
          "type": "FILEPATH"
        },
        {
          "name": "EXPAT_INCLUDE_DIR",
          "value": "${projectDir}/osrm-deps/libs/include",
          "type": "FILEPATH"
        },
        {
          "name": "BZIP2_LIBRARIES",
          "value": "${projectDir}/osrm-deps/libs/lib/bzip2.lib",
          "type": "FILEPATH"
        },
        {
          "name": "BZIP2_INCLUDE_DIR",
          "value": "${projectDir}/osrm-deps/libs/include",
          "type": "FILEPATH"
        },
        {
          "name": "LUA_DIR",
          "value": "${projectDir}/osrm-deps/libs/lib",
          "type": "FILEPATH"
        },
        {
          "name": "LUA_INCLUDE_DIR",
          "value": "${projectDir}/osrm-deps/libs/include",
          "type": "FILEPATH"
        },
        {
          "name": "ZLIB_LIBRARY",
          "value": "${projectDir}/../boost/boost_1_70_0/stage/lib/libboost_zlib-vc142-mt-x64-1_70.lib",
          "type": "FILEPATH"
        },
        {
          "name": "ZLIB_INCLUDE_DIR",
          "value": "${projectDir}/osrm-deps/libs/include",
          "type": "FILEPATH"
        },
        {
          "name": "ENABLE_MASON",
          "value": "false",
          "type": "BOOL"
        },
        {
          "name": "ENABLE_LTO",
          "value": "true",
          "type": "BOOL"
        },
        {
          "name": "CMAKE_C_FLAGS",
          "value": "-v -m64 -fdiagnostics-absolute-paths  -fdelayed-template-parsing -fms-compatibility -stdlib=libstdc++ -D_GLIBCXX_DEBUG /DWIN32 /D_WINDOWS /W3 /GR /EHsc -Werror=no-unused-variable -Werror=no-unused-result -D_USE_MATH_DEFINES=ON -D_WIN32_WINNT=0x0601 -DBOOST_USE_WINDOWS_H=ON -DBOOST_ALL_DYN_LINK=ON",
          "type": "STRING"
        },
        {
          "name": "CMAKE_CXX_FLAGS",
          "value": "-v -m64 -fdiagnostics-absolute-paths -fms-extensions -fdelayed-template-parsing -fms-compatibility -stdlib=libstdc++ -D_GLIBCXX_DEBUG /DWIN32 /D_WINDOWS /W3 /GR /EHsc -D_USE_MATH_DEFINES=ON -D_WIN32_WINNT=0x0601 -DBOOST_USE_WINDOWS_H=ON -DBOOST_ALL_DYN_LINK=ON -Wno-error=all ",
          "type": "STRING"
        },
        {
          "name": "LDFLAGS",
          "value": "-stdlib=libc++",
          "type": "STRING"
        },
        {
          "name": "BUILD_PACKAGE",
          "value": "OFF",
          "type": "BOOL"
        }
      ]
    }

Visual Studio MFC MDI, CRichEditDoc or CRichEditView get file path

$
0
0

I created a MFC MDI application with CRichEditView .

I want to get current file path when i open a txt file.

But i get file path on Serialize , that is failed.

The Path  is "". No any file path.

========================

Here is my sample code:

========================

void CMyEditDoc::Serialize(CArchive& ar)
{
CFile* pFile = ar.GetFile();
CString Path = pFile->GetFilePath();  // failed to get file path

if (ar.IsStoring())
{
// TODO: add storing code here
}
else
{
// TODO: add loading code here
}

// Calling the base class CRichEditDoc enables serialization
//  of the container document's COleClientItem objects.
// TODO: set CRichEditDoc::m_bRTF = FALSE if you are serializing as text

CRichEditDoc::Serialize(ar);
}

Printer v4 driver deployment target machine reboot issue

$
0
0
My sytem configuration

OS: Windows 10 pro

Microsoft Visual Studio Professional 2019 (Professional)
Version 16.5.4

WDK version: 10.0.18346.1000

Driver install - deploy - I am using manual configuration instead of automatic(provision)

I have create printer v4 driver application by referring link  https://docs.microsoft.com/en-us/windows-hardware/drivers/print/building-a-basic-v4-printer-driver. 
Follow all steps. as t trying to deploy it (from host machine) on output window it shows some error after reboot target machine.

$KitRoot$\Testing\Runtimes\TAEF\te.exe "%SystemDrive%\DriverTest\Run\DriverTestTasks.dll
DriverTestTasks.dll" /select:"@Name='DriverTestTasks::_LogDebuggerSettings'" /rebootStateFile:%SystemDrive%\DriverTest\Run\DriverTestReboot.xml /enableWttLogging /wttDeviceString:$LogFile:file="%SystemDrive%\DriverTest\Run\Gathering_kernel_debugger_settings_00042.wtl",writemode=append,encoding=unicode,nofscache=true,EnableLvl="WexStartTest|WexEndTest|WexXml|WexProperty|WexCreateContext|WexCloseContext|*" /runas:Elevated
 Task "Gathering kernel debugger settings" was aborted because a communication error occured during execution.

I am stuck on this issue. Not getting any help how to resolve it.

Thanks in advance.

Code discrepancies in VS 2017 & VS 2019

$
0
0

I am trying to work on a project which has as its basis in GitHub's MFCaptureD3D (C++) project with some additions also in C++. I get strange linkage errors which are impossible to resolve. I began my day today with updating both VS2017 and VS2019 with available updates but it has not changed anything. If I try to open this MFCaptureD3D project in VS2019 I get anywhere between 1 and 10 errors. Some of them are complaints that for instance #include <afx.h> cannot be found, although it is attached to the project, it is there. If I try to open this project in VS2017 I get at least 226 similar errors and sometimes 500 and more.

I have an old C# project, my workhorse, my database that holds everything I have collected so far during the years. It is huge, unfortunately too huge for my purposes now and when I try to open it in VS2017 I get 0 errors. Many hours are spent uselessly fighting fleeting errors.

I don't expect any help from this post, perhaps someone runs into similar problems.

Thanks, - MyCatAlex


DAO Database functionality in C++ called from a 64 bit app.

$
0
0
Hello,
  I write 3rd party  software in C++ that runs on top of an engineering program called AutoCAD.    We have various applications that do this but one of them Creates ,  Accesses and manipulates a database using the DAO functions offered by MFC's  CDaoDatabase with some CDaoRecordset's in it.    This .dll (which AutoCAD calls an .arx) has to be generated as an x64 app on the 64 BIT version of AutoCAD (i.e. the one that installs automatically on XP 64 and Vista 64) .  

The generated database is used by another 32-bit portion of our software.   This works well because the JET engine and the new ACE engine (for Access 2007)  are both 32 bit from what I can tell and run in WOW64 on a 64bit machine.    So our 32 bit software has no trouble getting at these databases.    
But my piece of the puzzle, that has traditionally generated the database, cannot use the DAO functions any more when I try to build the project as an x64 app.     It give me :
fatal error C1189: #error :  DAO Database classes are not supported for Win64 platforms
This error makes sense to me , knowing that the JET and ACE database formats are both only in 32bit.    
Also, the _AFX_NO_DAO_SUPPORT preproccesor variable gets set in there somewhere as well when building an x64 build, so a host of other DAO dependencies don't get defined as a result.

So to get around this problem on the 64 bit version of this project, I've decided to create a 64bit wrapper for the DAO functions so I can call them from my 64 bit app and still generate that .mdb file I've been generating that's 32 bit compliant and can be picked up by our other 32-bit in Wow64.    

I am just setting out to write my own wrappers (as is suggested here: http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/91855c63-b2a3-46fb-aec4-f2b087988555/) but then I thought , I'm sure other people have had this problem and to see if anyone has already created a wrapper to get at DAO functions from a 64 bit app, that's out there somewhere.   I looked around on MSDN and online in general and didn't find anything.   
Any help would be much appreciated,
Roy

A couple references that convinced me to try this tactic instead of converting to ADO or OLE DB:
Developing Access 2007 Solutions with Native C or C++
http://msdn.microsoft.com/en-us/library/cc811599.aspx

Accessing 32-bit DLLs from 64-bit code
http://dnjonline.com/article.aspx?ID=jun07_access3264

Error C4700 Uninitialized local variable used

$
0
0

I made a blanket balance checking program like following.

This code worrks well.

#include <iostream>
#include <string>
#include <stack>

using namespace std;
bool openblaket(char c)
{
    bool ret;

    if (c == '{' || c == '[' || c == '(')
 	ret = true;
    else
 	ret = false;
    return(ret);
}
bool MatchBlanket(char c1, char c2)
{
    if (c1 == '{' && c2 == '}') return true;
    if (c1 == '[' && c2 == ']') return true;
    if (c1 == '(' && c2 == ')') return true;
    return false;
}
bool IsBalanced(string s)
{
    bool ret = true;
    stack<char>* mystack = new stack<char>;

    int n = s.length();
    char* char_array = new char[n + 1];

    strcpy(char_array, s.c_str());
	
    for (int i = 0; i < n; i++)
    {
	if (openblaket(char_array[i]))
            mystack->push(char_array[i]);
	else if (MatchBlanket(mystack->top(),char_array[i]) == true)
	    mystack->pop();
    } 
    if (mystack->size() > 0)
	ret = false;
    delete mystack;
    mystack = NULL;
    delete[] char_array;
    char_array = NULL;
    return(ret);
}
int main()
{
    string s = "{[()]}";
    if (IsBalanced(s))
        cout << "balanced!";
    else
	cout << "Not balanced!";

}

However, if I make stack in stack memory instead of heap memory like following, error occur.

stack<char>* mystack
Error C4700 Uninitialized local variable 'mystack' used

Why should I create mystack only in heap?

Visual Studio MFC MDI add svn version on the title

$
0
0

I created a MFC MDI application.

I want to get svn version on the MainFrm window title.

Any examples?

Visual Studio MFC MDI CChildFrame , from 3 line numbers to 4 line numbers

$
0
0

I created a MFC MDI application with CRichEditView .

When i use MFC MDI to open 3 line numbers text file , i saw 4 line numbers.

I want to keep 3 line numbers on MFC MDI.

Visual Studio MFC , get windows command line value

$
0
0

Visual Studio MFC how to setting command line parameter and get the return value to Visual studio code?

For example:

command line using dir/w

Visual Studio MFC can get dir/w return data...

Viewing all 15302 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>