|
I have comodo firewall and defense installed on my machine, and if I put the level up high enough, then it tells me that HelloWorld.exe is being executed when I run through the debugger, but after that it's not there...I don't know if that provides a clue or not...here's the build log:
Command Lines
Creating temporary file "c:\Documents and Settings\Brandon Wilhite\Desktop\Auxiliary Projects\WindowsServiceProofOfConcept\HelloWorld2\Debug\RSP00000138963340.rsp" with contents
[
/Od /D "WIN32" /D "_DEBUG" /D "_UNICODE" /D "UNICODE" /FD /EHa /MDd /Yu"stdafx.h" /Fp"Debug\HelloWorld2.pch" /Fo"Debug\\" /Fd"Debug\vc80.pdb" /W3 /c /Zi /clr /TP /FU "c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll" /FU "c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll" /FU "c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.XML.dll"
".\HelloWorld2.cpp"
".\AssemblyInfo.cpp"
]
Creating command line "cl.exe @"c:\Documents and Settings\Brandon Wilhite\Desktop\Auxiliary Projects\WindowsServiceProofOfConcept\HelloWorld2\Debug\RSP00000138963340.rsp" /nologo /errorReport:prompt"
Creating temporary file "c:\Documents and Settings\Brandon Wilhite\Desktop\Auxiliary Projects\WindowsServiceProofOfConcept\HelloWorld2\Debug\RSP00000238963340.rsp" with contents
[
/Od /D "WIN32" /D "_DEBUG" /D "_UNICODE" /D "UNICODE" /FD /EHa /MDd /Yc"stdafx.h" /Fp"Debug\HelloWorld2.pch" /Fo"Debug\\" /Fd"Debug\vc80.pdb" /W3 /c /Zi /clr /TP /FU "c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll" /FU "c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll" /FU "c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.XML.dll"
".\stdafx.cpp"
]
Creating command line "cl.exe @"c:\Documents and Settings\Brandon Wilhite\Desktop\Auxiliary Projects\WindowsServiceProofOfConcept\HelloWorld2\Debug\RSP00000238963340.rsp" /nologo /errorReport:prompt"
Creating command line "rc.exe /d "_UNICODE" /d "UNICODE" /fo"Debug/app.res" ".\app.rc""
Creating temporary file "c:\Documents and Settings\Brandon Wilhite\Desktop\Auxiliary Projects\WindowsServiceProofOfConcept\HelloWorld2\Debug\RSP00000538963340.rsp" with contents
[
/OUT:"C:\Documents and Settings\Brandon Wilhite\Desktop\Auxiliary Projects\WindowsServiceProofOfConcept\Debug\HelloWorld2.exe" /INCREMENTAL /MANIFEST /MANIFESTFILE:"Debug\HelloWorld2.exe.intermediate.manifest" /DEBUG /ASSEMBLYDEBUG /PDB:"c:\Documents and Settings\Brandon Wilhite\Desktop\Auxiliary Projects\WindowsServiceProofOfConcept\debug\HelloWorld2.pdb" /MACHINE:X86 /FIXED:No ".\Debug\AssemblyInfo.obj"
".\Debug\HelloWorld2.obj"
".\Debug\stdafx.obj"
".\Debug\app.res"
]
Creating command line "link.exe @"c:\Documents and Settings\Brandon Wilhite\Desktop\Auxiliary Projects\WindowsServiceProofOfConcept\HelloWorld2\Debug\RSP00000538963340.rsp" /NOLOGO /ERRORREPORT:PROMPT"
Creating temporary file "c:\Documents and Settings\Brandon Wilhite\Desktop\Auxiliary Projects\WindowsServiceProofOfConcept\HelloWorld2\Debug\RSP00000638963340.rsp" with contents
[
/outputresource:"..\debug\HelloWorld2.exe;#1" /manifest
".\Debug\HelloWorld2.exe.intermediate.manifest"
]
Creating command line "mt.exe @"c:\Documents and Settings\Brandon Wilhite\Desktop\Auxiliary Projects\WindowsServiceProofOfConcept\HelloWorld2\Debug\RSP00000638963340.rsp" /nologo"
Creating temporary file "c:\Documents and Settings\Brandon Wilhite\Desktop\Auxiliary Projects\WindowsServiceProofOfConcept\HelloWorld2\Debug\BAT00000738963340.bat" with contents
[
@echo Manifest resource last updated at %TIME% on %DATE% > ".\Debug\mt.dep"
]
Creating command line """c:\Documents and Settings\Brandon Wilhite\Desktop\Auxiliary Projects\WindowsServiceProofOfConcept\HelloWorld2\Debug\BAT00000738963340.bat"""
Output Window
Compiling...
stdafx.cpp
Compiling...
HelloWorld2.cpp
AssemblyInfo.cpp
Generating Code...
Compiling resources...
Linking...
Embedding manifest...
|
|
|
|
|
Hi,
I'm trying to marshal a struct in unmanaged memory but it doesn't work.
I have my Windows Service that is filling up the struct's fields and then calls the API DeviceIoControl passing as argument an IntPtr.
When I debug my driver (kernel mode) I'm not able to see the real values of the fields but only random data. Someone can tell me what's wrong?
This is my code:
<br />
[DllImport("kernel32.dll", SetLastError = true)]<br />
extern bool DeviceIoControl(IntPtr hDevice, int dwIoControlCode, IntPtr lpInBuffer, int nInBufferSize, IntPtr lpOutBuffer, int nOutBufferSize, int %lpBytesReturned, IntPtr lpOverlapped);<br />
<br />
[StructLayout(LayoutKind::Sequential)]<br />
public ref struct OPEN_FILE_INFORMATION<br />
{<br />
UInt64 FileSize;<br />
bool ReadOnly;<br />
UInt16 FileNameLength;<br />
[MarshalAs(UnmanagedType::ByValArray, SizeConst=1)]<br />
String ^FileName;<br />
};<br />
<br />
public: void Mount(void)<br />
{<br />
<br />
...........<br />
<br />
OPEN_FILE_INFORMATION ^OpenFileInformation = gcnew OPEN_FILE_INFORMATION();<br />
<br />
String ^ImagePath = this->AppPath + "\\VirtualDisk.disk";<br />
int structSize = Marshal::SizeOf(OPEN_FILE_INFORMATION::typeid);<br />
int totalStructSize = structSize + ImagePath->Length;<br />
<br />
OpenFileInformation->FileSize = 8388608;
OpenFileInformation->ReadOnly = false;<br />
OpenFileInformation->FileNameLength = ImagePath->Length;<br />
OpenFileInformation->FileName = ImagePath;<br />
<br />
IntPtr ofiPtr = Marshal::AllocHGlobal(totalStructSize);<br />
Marshal::StructureToPtr(OpenFileInformation, ofiPtr, true);<br />
<br />
cli::array<unsigned char, 1> ^tokens = Text::Encoding::Unicode->GetBytes(ImagePath);<br />
<br />
int offset = 11;<br />
<br />
for each (unsigned char c in tokens)<br />
{<br />
Marshal::WriteByte(ofiPtr, offset, c);<br />
offset++;<br />
}<br />
<br />
if (!DeviceIoControl(Device, IOCTL_FILE_DISK_OPEN_FILE, ofiPtr, totalStructSize - 1, IntPtr::Zero, 0, BytesReturned, IntPtr::Zero))<br />
{<br />
DefineDosDevice(DDD_REMOVE_DEFINITION, DriveLetter + ":", nullptr);<br />
}<br />
<br />
Marshal::FreeHGlobal(ofiPtr);<br />
}<br />
Thanks in advance.
Sorry for my poor english.
|
|
|
|
|
Is there some reason your not calling DeviceIOControl using native code?
led mike
|
|
|
|
|
Because my service is written using dotnet.. I need to mount a virtual disk via DeviceIoControl from my service, so I think I'm forced to use managed code. Do you think I can use native code from my managed service? How?
|
|
|
|
|
Member 4124873 wrote: Do you think I can use native code from my managed service?
No I don't think you can, I know you can.
Member 4124873 wrote: How?
Ok, this is like deja vu all over again. People tend to get real upset when I tell them this but here goes.
Software developers really really should understand the technology they intend to use in a product PRIOR to developing the product. In this particular case one piece of the technologies you are attempting to use is both managed and unmanaged memory and/or code. IMHO you do not understand this technology well enough to be doing anything with it beyond studying and research for the purpose of learning about it.
There are many resources available in this regard. One is a set of articles here on CodeProject that introduce C++/CLI programming to beginners.
led mike
|
|
|
|
|
I had a problem marshaling a C struct. Part of my solution involved Custom Marshalling (ICustomMarshaler). Since I cannot write an article or a book chapter here, you need to follow led mike's advice. However, I can suggest a book that can help you out:
Expert C++/CLI: .NET for Visual C++ Programmers, Marcus Heege
Apress, ISBN: 978-1-59059-756-9 (Print) 978-1-4302-0357-5 (Online)
"We make a living by what we get, we make a life by what we give." --Winston Churchill
|
|
|
|
|
Thank you led mike and George!
|
|
|
|
|
Hello friends,
Can any one give me simple example of how can i call
the Atl com dll function(s) in the Managed C++.net
I have created a simple atl com library. The functions from that
library get invoked through C#.net but when i try to invoke then through
the managed C++ it is giving error message.
Is there anything required to do so that it can work.....?
Thanks in advance.
|
|
|
|
|
Rahul.RK wrote: the managed C++ it is giving error message.
Question: Do you think error messages contain information valuable to the effort of resolving the error?
led mike
|
|
|
|
|
led mike wrote: Question: Do you think error messages contain information valuable to the effort of resolving the error?
Yes?
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Mark Salsbery wrote: Yes?
Is that your final answer?
led mike
|
|
|
|
|
Hello!
I'm have a public managed class in assembly1 with one internal static field field1. This assembly has attribute
[assembly: System::Runtime::CompilerServices::InternalsVisibleToAttribute("assemly2")].
But when I try to access these internal field1 from assembly2 I get an compiler error:
2> c:\projects\assembly1\assembly2\Assembly2.h(14) : error C2248: 'Assembly1::Class1::Field1' : cannot access private member declared in class 'Assembly1::Class1'
2> c:\projects\assembly1\assembly2\Assembly2.h(14) : see declaration of 'Assembly1::Class1::Field1'
2> c:\projects\assembly1\debug\assembly1.dll : see declaration of 'Assembly1::Class1'
VC++ 2008 used.
When I created the same project in VC# 2008 (assembly2) it compiles perfectly and see the internal field1 without any problems.
Source code:
<code>
#pragma once
using namespace System;
namespace Assembly1 {
public ref class Class1
{
internal:
static int Field1;
};
[assembly: System::Runtime::CompilerServices::InternalsVisibleToAttribute("Assembly2")];
}
===========================================================================
// Assembly2.h
#pragma once
using namespace System;
using namespace Assembly1;
namespace Assembly2 {
public ref class Class1
{
void TestC2248()
{
Assembly1::Class1::Field1 = 0; // C2248
}
};
}
</code>
What I'm doing wrong?
Thanks.
|
|
|
|
|
Abix wrote: What I'm doing wrong?
<font color="Red">#using "friend_assemblies.dll" as_friend</font>
from the documentation[^]
|
|
|
|
|
Thank you very much!
modified on Tuesday, January 15, 2008 11:17:56 AM
|
|
|
|
|
I have finish my application written in Visual c++ NEt 2005.
How To deploy it in another machine ?
|
|
|
|
|
|
Dear Sir,
In my Payroll Program, I need to show the picture of each worker.
I put all photos in one directory and the name of each is his id number.
What to di load photos in my form ?
|
|
|
|
|
mikobi wrote: What to di load photos in my form ?
"I guess it's what separates the professionals from the drag and drop, girly wirly, namby pamby, wishy washy, can't code for crap types." - Pete O'Hanlon
|
|
|
|
|
I need it so at the hospital they need to see if the name is really the man who need health cure
|
|
|
|
|
How can I size SplitContainer panel1 so that it can have the same with then buttons I drawn in side programmatically.
|
|
|
|
|
Dear Sir,
How can I realise Navigation pane menu with Visual C++ NET 2005
|
|
|
|
|
I want to have my compiled html help point to a topic specific to where the mouse is pointing but I can't seem to determine which control the mouse is hovering over.
private: System::Void FrmMain_HelpRequested(System::Object^ sender, System::Windows::Forms::HelpEventArgs^ hlpevent)
{
Point pt = this->PointToClient(hlpevent->MousePos);
Control^ requestingControl = dynamic_cast<control^>(sender);
Control ^ctrl = this->GetChildAtPoint(pt);
Control ^ctrl2 = this->ActiveControl;
if( File::Exists(this->helpProvider->HelpNamespace ) == true)
{
Help::ShowHelp(this, this->helpProvider->HelpNamespace);
}
}</control^>
ctrl is the form itself and crtl2 is the last active mdichild in my application.
requestingControl returns the form and not the item the mouse is over.
Hope someone can help
Programmer
Glenn Earl Graham
Austin, TX
modified on Friday, January 04, 2008 1:56:26 PM
|
|
|
|
|
Hi,
have a look at the sender parameter, I expect it to hold the current control; the only thing
required typically is a cast.
|
|
|
|
|
It does not.
The control is the form not the menu item. I have updated my code.
Thanks for the suggestion.
Programmer
Glenn Earl Graham
Austin, TX
|
|
|
|
|
Hi Glenn,
that's too bad, I don't know then.
|
|
|
|