|
This is not a Joke!
A few weeks ago, the NSA released a disassembly tool, ghidra, into the public domain. It is in theory only downloadable from the USA, but no one outside the USA has ever heard of VPNs. /s
I've used it on some object code, and managed to reconstruct a C version at a level that allowed me to understand what the object code was doing. It's not good enough to recompile, but you should be able to see how the code works.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
I can run my small program called Notebook, and I can set compatibility for notebook.exe, but not notebook.dsw. It is presently a dialog box that asks a Question, and then provides the Answer.
I cannot use the debug folder to run debug.
I cannot rebuild.
I cannot compile.
I think it is just not compatible with Windows 7 Professional.
I am considering putting Windows XP SP3 in a VM, and running it there.
Mainly, I just wanted to see my original written form of Visual C++ 6.0 coding.
Then I can add Rich Text Format to the text entered.
Later on, I want to add vector graphic calculations to the result.
|
|
|
|
|
So you can open your project with VC6, but you can't debug it? Or can you not open the project at all?
I still use VC6 on a Windows 7 machine for one of my main projects still today and it works just fine. When I initially put it on that machine 5+ years ago, I had to tweak some files to get it going (because it was 64-bit), but it has run fine ever since.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
I can run my small program called Notebook, and I can set compatibility for notebook.exe, but not notebook.dsw. It is presently a dialog box that asks a Question, and then provides the Answer.
I cannot use the debug folder to run debug.
I cannot rebuild.
I cannot compile.
I think it is just not compatible with Windows 7 Professional.
I am considering putting Windows XP SP3 in a VM, and running it there.
Mainly, I just wanted to see my original written form of Visual C++ 6.0 coding.
Then I can add Rich Text Format to the text entered.
Later on, I want to add vector graphic calculations to the result.
|
|
|
|
|
Michael Hinton wrote:
I cannot use the debug folder to run debug. What exactly does this mean?
Michael Hinton wrote:
I think it is just not compatible with Windows 7 Professional. Your app or VC6?
Michael Hinton wrote:
Mainly, I just wanted to see my original written form of Visual C++ 6.0 coding. So are the H/CPP files not present?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
Do you have all the needed source files? Or you only nave a .dsw one?
Do you have some VS installed on your PC? Which one?
|
|
|
|
|
Hi Victor,
I am not sure I am using the CodeProject System correctly!
Am I expected to give an up or down vote with the red and green triangles?
I am using Visual Studio 6.0. The dsw file just brings up the program in workbook form.
I can only go into Properties from Notebook.exe for XP Compatibility plus Run as Admin, and that is not helping me to get the coding I want to look at. I want to add RTF to my text, and later graphics in the Answer section.
The Notebook program was written in Visual C++ but mostly C++.
It is a simple Q & A dialog box I programmed for study questions and answers.
I wrote that program in Feb. 2004, and I am now retired, so I want to get back to learning.
I have a considerable investment in the VCPP6 and VB6 library volumes.
I want to stay with VS6 because the programs will be only for me, and I do not intend to write many.
I can see the compiled code, but I cannot regenerate my original write-up code from that!
If I run the debug there is supposed to be a way to make a file that tracks my code, but that is during the original compile and debug process. Only Windows XP is compatible with my program.
I have Windows 7 Pro now on my HP Pavilion 515n 32-bit computer and running compile, rebuild, or debug just destroys the program. Fortunately I keep backups of Notebook. It runs fine on Win7, but not much use to understand my original write-up code way back then!
I mainly use the 32-bit to backup my Palm Pilot monthly and run a free-space drive wipe after.
Don't worry, I have an HP ENVY 700-210xt SSD 64-bit on Windows 10, but free-space wipe on it would be write steps that burn SSD life (read is fine, but not write). Also, I want to keep my programming mess away from the 64-bit computer.
I am currently looking into using a VM with Windows XP inside to run my program with all functions.
|
|
|
|
|
|
|
Try:
CListCtrl and Displaying a Tooltip[^]
MFC List Control with Tooltip and Menu Ability[^]
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
It's easy to add to any window using just the Windows API ..
So you have a window Handle (hWnd) and you have a char* tooltip you wish to display
First you must make sure commoncontrols is kicked
#include <commctrl.h>
#pragma comment(lib, "comctl32.lib") // Shortcut to add library rather than manual add
INITCOMMONCONTROLSEX icex = {
.dwSize = sizeof(INITCOMMONCONTROLSEX),
.dwICC = ICC_STANDARD_CLASSES
};
InitCommonControlsEx(&icex);
Now create the tooltip window .. we will default to same area as window itself you can size it if you want
HWND TTWnd = CreateWindowEx (WS_EX_TOPMOST, TOOLTIPS_CLASS, NULL,
WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP | TTS_BALLOON,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
hWnd, 0, 0, NULL);
if (TTWnd)
{
TOOLINFO ti = { 0 };
SetWindowPos(TTWnd, HWND_TOPMOST, 0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
ti.cbSize = sizeof(TOOLINFO);
ti.uFlags = TTF_SUBCLASS;
ti.hwnd = hWnd;
ti.hinst = 0;
ti.uId = 0;
ti.lpszText = tooltip;
GetClientRect(hWnd, &ti.rect);
SendMessage(TTWnd, TTM_ADDTOOL, 0, (LPARAM)&ti);
}
Try it on any window you like
In vino veritas
|
|
|
|
|
First of all I cannot use MFC.
I have made WM_MENUSELECT handling in the dialog:
case WM_MENUSELECT:
return OnMyMenuSelect(LOWORD(wpar), HIWORD(wpar), (HMENU)lpar);
However function IsMenu((HMENU)lpar) returns FALSE. Does anybody has idea why ?
|
|
|
|
|
NoviceEx wrote: However function IsMenu((HMENU)lpar) returns FALSE. Does anybody has idea why ? Did you try to debug this function? This would allow you to know why it returns false.
noop()
|
|
|
|
|
The function I need to implement is to first select a row in the ListControl, and then press the "Import" button, the program will import the file corresponding to the pre-set corresponding path of this row.
I have written an import function, just need to provide the path and name corresponding to the file you want to import.
The problem is that I don't know how to match the selected line with the pre-set path and file, because there are too many files and paths (at least 20) to be set in advance, and listcontrol has the same number of lines and files as the number of files.
The point of my problem is that I don't know how to get the number of any selected row to associate it with the corresponding path and file.
All I know is to associate any row selected by the ListControl with only one of the specified paths and files.
Here are my codes:
void RobotmodelPre::OnBnClickedInputmodel()
{
CDocTemplate* pDocTempl;
POSITION pos=AfxGetApp()->GetFirstDocTemplatePosition();
pDocTempl=AfxGetApp()->GetNextDocTemplate(pos);
POSITION posDoc=pDocTempl->GetFirstDocPosition();
if (posDoc!=NULL)
{
m_pDoc=(CRobotAppDoc*)pDocTempl->GetNextDoc(posDoc);
}
else
{
m_pDoc=NULL;
AfxMessageBox("FAIL!");
return;
}
CString filePath1 = "D:\\robot_new\\Data\\4kg_simplified\\SR4_SIASUN.rbt";
CString folderPath1 ="D:\\robot_new\\Data\\4kg_simplified";
CWaitCursor cur;
XObject obj;
bool bIsRobotLoad = false, bIsObjectLoad = false, bIsWorkPieceLoad = false, blsToolLoad = false;
int iObjSize = m_pDoc->m_vObj.size();
int iRobot = -1, iObj = -1;
CMainFrame* pMainFrame = (CMainFrame*)AfxGetMainWnd();
if( m_pDoc->LoadRbt(filePath1,folderPath1))
{
bIsRobotLoad = true;
iRobot= m_pDoc->m_vRobot.size()-1;
pMainFrame->m_wndModelTreeView.DisplayRobotTree();
}
}
Among them, the "LoadRbt" function only needs to provide two parameters.
The debugging result of this code is that no matter which line is selected, the same file will be imported (the rbt file is a file I customize).
How can I select different lines and import different files?
|
|
|
|
|
You have hardcoded your file names instead of getting the selected item from the ListBox.
|
|
|
|
|
Is the path/file part of the ListControl contents?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
No,that is why I do not know how to code.
|
|
|
|
|
Then I would suggest calling SetItemData() after each item is added to the control. Then when an item in the list control is clicked, use the index/pos number provided to call GetIemData() .
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
wow,thank you for your advice!I will try later!
I tried to solve the problem myself by means of using "CStringArray".But it fails when I debug and I do not know the reason.Would you please tell me the bug?
Here are the addition codes:
CStringArray filePaths;
CStringArray folderPaths;
filePaths.Add("D:\\robot_new\\Data\\4kg_simplified\\SR4_SIASUN.rbt");
filePaths.Add("D:\\robot_new\\Data\\IRB4400\\IRB4400 m.rbt");
folderPaths.Add("D:\\robot_new\\Data\\4kg_simplified");
folderPaths.Add("D:\\robot_new\\Data\\IRB4400");
CWaitCursor cur;
XObject obj;
bool bIsRobotLoad = false, bIsObjectLoad = false, bIsWorkPieceLoad = false, blsToolLoad = false;
int iObjSize = m_pDoc->m_vObj.size();
int iRobot = -1, iObj = -1;
CMainFrame* pMainFrame = (CMainFrame*)AfxGetMainWnd();
if( m_pDoc->LoadRbt(filePaths[nId-1],folderPaths[nId-1]))
{
bIsRobotLoad = true;
iRobot= m_pDoc->m_vRobot.size()-1;
pMainFrame->m_wndModelTreeView.DisplayRobotTree();
}
|
|
|
|
|
tianzhili4399 wrote: But it fails when I debug What fails, what errors do you see, what is LoadRbt supposed to do?
|
|
|
|
|
thank you,I have debug successfully! 
|
|
|
|
|
I keep running into snags using Linux "autotools " generated code.
Would this work?
1. Build required C++ library on host architecture and link it to the "build" system?
I am successfully using Target Communication Framework - Agent - to "connect" from build system to host . Uses TCP.
I used "post-processing" long time ago and I was thinking if that or pre-processing could be used to "add" the library link before the main process is done. Just a thought.
I do not know to to "link" across network during program compilation / linking.
2. Could I just import / copy the correct architecture library from the host system to build system and just link it normally?
I am going to try "scp" Linux command to copy the C++ library from the host to build system.
Is there anything special why this "scp" copy would not work?
SOLUTION
Used option 2 - scp /rcp to copy library build on ARM system to similar folder on X86.
Linked to it the usual way. Linker accepted the file format , no problems.
Test run on ARM "host" and works as expected.
Cheers
modified 13-May-19 14:10pm.
|
|
|
|
|
It is not clear what the actual problem is, and why you cannot build the library in the same way that you build the rest of the system. Linking a library to an application should work if both sides have been built to the same target architecture.
|
|
|
|
|
help!
If making a non-static system, to direct feed at at static app. does the direct feed have to be captured simultaneously as the variable
|
|
|
|
|
Your statement/question is less than coherent. Can you reword it (and the subject) to make more sense?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|