I am trying to use VirtualQueryEx to read the memory of a process (first instance of notepad in this case). This function returns a pointer to the MEMORY_BASIC_INFORMATION structure. I am trying to read this structure.But everytime I try to access a member of the structure, I get a zero, which indicates I am messing something up.I am copying my code here.
Private Declare Function src_simple Lib "libsamplerate.dll" (ByVal data As IntPtr, ByVal converter_type As Integer, ByVal channels As Integer) As Integer<br/> Private Declare Function src_strerror Lib "libsamplerate.dll" (ByVal err As Integer) As IntPtr<br/> <br/> <StructLayout(LayoutKind.Sequential, Pack:=1)> _
I'm making a "wrapper" for an unmanaged DLL (written, I'm fairly certain in C). I have a c++ "wrapper" that I'm trying to convert to VB.net. I've got most of the program working, but I've hit a brick wall.
I'm trying to convert the following two structures from their c++ versions to their vb.net versions. I cannot be sure which is the problem because both must be passed at the same time. The error I am getting is thrown by the object and indicates "Invalid structure size specified". I can cause this error on other objects when I either don't set the dwSize variable, leave off a parameter or change the parameter type incorrectly. Note that the dwSize parameter is supposed to contain the size of each structure. I'm successfully calculating that for my other structures and I'm using the same method on these and the results appear correct, so I do not believe the problem is found there. The object uses a lot of structures and the rest of them are working. These two are the only ones with a) an unsigned character pointer b) an unsigned long array and c) doubles.
C++ versions:
CODE:
I don't think I'm missing any parameters - the help file seems to agree with me on this, but it's theoretically possible that there is something missing (though I don't think so for other reasons as well). My suspicion is that it's dwPalette, pImageData or pMaskData with (in my uninformed opinion) more suspicion on the pImageData and pMaskData.
I am making a small utility to rename my music library to the same syntax (00-Artist-Album-Title.mp3). All the files are MP3 and are correctly tagged (ID3). This is my current
VB.NET Sub Main() Console.WriteLine("Press any key to continue...")
[Code]...
Line 33 is where I need to get the song's ID3 tags from Song. I've done a fair amount of research but I can't find anything current or relevant.
I have several quesions about reading/writing structures from/to files.In a scenario when I open a data file having its own header and variable data fields I create a structure that represents a header consisting of 9 bytes:
Public Structure HeaderInfo Public DataField1 As Integer Public DataField2 As Byte Public DateField3 As Integer End Structure
I'm using this code for the time being:
vb.net Public Function ReadHeader(ByVal FileName As String) As HeaderInfo Dim ReturnInfo As HeaderInfo Try Using br As New IO.BinaryReader(New IO.FileStream(FileName, IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.Read)) With ReturnInfo
[code]....
The first question is - can I fill the structure directly somehow? Some structures are very long and filling them this way will be tedious. For example, if I know the length of the structure I could read the needed number of bytes in a byte array and somehow marshal these bytes into the structure.I can use Marshal.PtrToStructure, but then I would need to get an IntPtr of my byte array. I use <Serializable()> attribute for my structure.
Module Module1 Public Structure structure1 Public TRANS() As structure2 End Structure Public Structure structure2 Public X() As Integer End Structure End Module
I'm new to VB 2008 after having spent a long time with VB6, so I apologize if this is a stupid question. But I'd really like to have this straightened out.
Let's say I have a pretty large structure that has lots of properties.
Code:
Now say that I want an internal database with about 10 instances of this structure total, describing, say, 10 different products that a store sells. When these values are loaded from a database, they remain totally static. (However, they can be different each time a program loads)
Now say that I have a class. Each instance of this class is a type of that BaseProduct structure. Meaning, each instance of the class pertains to one of the 10 types of products that the store sells. However, this class has additional properties that pertain specifically to each instance, which are not static.
Code:
Now, the problem here is... If I have 200 different transactions, each one contains an instance of BaseProduct. BaseProduct is HUGE, and is largely redundant (only 10 types possible), so I think it's a little silly to include a whole copy of it with EVERY transaction. However, the Transaction class really needs information regarding the base product it pertains to. Is there a way to, instead of declaring a New BaseProduct in the Transaction class, to simply make one of the properties of the Transaction class a pointer to a BaseProduct variable?
In VB6, I would accomplish this by making a BaseProduct(10) array, and then giving each Transaction an ID number referring to an entry in that array. But in VB 2008, using class structure, this is impossible. I can't define the BaseProduct(10) array outside of a class in a namespace, and if I define it in the actual application's form, then the class loses modularity since it relies on the application that's using it.
I am trying to communicate with an external device and i am trying to send a byte array to the external device via sockets but i am always getting a response the message size is too small so i am not sure what i have done wrong. Between the data type there should be no alignment present and all numbers are represented in little endian format. The char array is not null terminated as mentioned in the protocol specifications.
I have to send data based on a struct that embeds 2 other struct. So here's my vb.net code for the struct used to convert to byte array and the sending part.
Public Structure MESSAGETYPE_OIP_Login Dim Header() As COMMANDHEADER Dim UserName() As PSTRING
I'm having a problem that's driving me crazy; I can't understand how to convert the XML structure into a class structure (that I want to use to hydrate a XML document).
The XML document looks like this:
xml <?xml version="1.0" encoding="utf-8"?> <artists xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" xmlns="http://www.spotify.com/ns/music/1">
I understand there are no pointers in VB.Net. I need to use something similar.The issue is that I have a structure that represent a deck of cards, with elements showing how many of each type of card there is. So I have my_deck.ace, my_deck.two, and so on.What I want to do is set a pointer called current_element that refers to any element in the structure. It may one time point to my_deck.three, and another time to my_deck.nine, and so on. It could point to any element.What I want to do is, for instance to set current_element to point to my_deck.ace, then decrementing current_element would reduce the count of aces by one.[code]that would work, but it's inelegant, I have about 30 different operations to perform, some of them using several lines of code. I'd like to avoid this if at all possible. I could tolerate doing it 2 or 3 times, but not 30.
I need to change the default windows pointer to this: not generally, just in my program. (Form1) There's a Pointer Control But I Dont Know What That Does.
I've got a 3rd party C application that's compiled to a non-.NET non-COM DLL. It has one simple function declared like so: Declare Function CapiTaxRoutine Lib "taxcommono.dll" (ByVal sInData As String, ByVal OutputData As String, ByVal intINPutLength As Long) As Integer
If I place the taxcommono.dll in my path (C:WindowsSystem32 is what I'm using because it's what the vendor recommends),I can wire up a call to the function and it works just fine.It returns a 1 or 0 for success/failure, but it also sets the value of the OutputData string parameter (using some C pointer magic I'm not familiar with) to a huge fixed width format return record that has the data I need.When I call it from a .NET .exe application, it works just fine.When I try to call it from an ASP.NET application via a referenced compiled .NET wrapper DLL, it runs but can't set that string.In order to get it to run, I can't have taxcommono.dll in my path, but rather have to place it in my Bin directory of the web project.Does anyone know of a reason it can set the pointer when called from an .exe application but not when called from a web app?The .NET wrapper DLL I'm using works when called from our ERP software, which is not web based. But when I add a reference to that same DLL in the web app, it won't give me that output value.am used to just getting a return value instead of a function setting the value of one of my input parameters.
In VB6 I have several child forms that have Subs and Controls with the same names.I need to access these Subs and Controls from public subs (in a module) that have a reference to the Active Form.[code]...
I'm by no means a good programmer and I'm just trying to wrap my head around some of this stuff, so please forgive me if this is a dumb question.I want the following to produce a message box that says "2", not "5":
Public Class SomeClass Private SomeInt As Integer = 5 Private SomeListOfInts As New List(Of Integer)
im in a project using drag and drop events and.. , when i drag a label image, i need to change te cursor pointer from an image that is on a labelike the SO windows when you drag a file appears like a mirror with alfa minimun so its like the image but more transparent when i drag i need to change the cursor pointer from an image that i'm dragging by the way im, using visual studio .net and im programming in visual basic
Public Class Form1 Public Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As IntPtr Public Declare Function GetProcAddress Lib "kernel32" Alias "GetProcAddress" (ByVal hModule As IntPtr, ByVal lpProcName As String) As IntPtr
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim hmod As IntPtr = GetModuleHandle(Nothing) 'Work Dim addrs As IntPtr = GetProcAddress(hmod , "TestFunction") 'Not work, always NULL why??
How do I change my mouse cursor/icon to use a image or icon. I want to make a simple "wack a mole" type game but I dont know how to change the pointer to a icon or at least get a image to follow the pointer.
I have a form that has 100 text boxes with 100 coinciding labels. I want them hidden until another function populates the text boxes with data gathered elsewhere. The data could be between 1 and 100.
I would like one loop where I can assign the data to the correct text box, set it visible and set the label visible. I can not figure out how to do this in VB, or know if it is even possible.
Here is an example of what I would like to do
Dim i As Long = 1 Dim textbox As String = "textbox"
[code]....
I would also like to do this to hide all the items on the form in the on load event.
I'm trying to rewrite a C++ library. But I have an issue. I'm not extremely pointer-savvy. In the C++ class there is a std::vector that holds unsigned int pointers (vector<unsigned int*>), and the int pointer just points to an array of integer data.
I am using a DLL written in C#, and one of its API's wants to be used as such, (this is the sample useage they give, but it is also written in C#)[code]...
This small snippet of code is to increment a count value (integer) which is stored in a dictionary using my referenced object as a key. When the dictionary is small, multiple lookups aren't a big deal but this particular dictionary can get quite large.
Private RefCount As IDictionary(Of ILifeTimeManaged, Integer) ......... CODE HERE..... Private Sub IncrementRefCount(ByVal entity As ILifeTimeManaged) Dim prevCount As Integer ''# if we have no reference entry, add one and set its count to 1 [Code] .....
I find a corresponding dictionary entry then increment the int stored in the value, or add a new dictionary entry. Is it a bad idea to use a pointer to the dictionary value? Then I can avoid the second key lookup when I already have gotten the value. How would you implement it? Is this even possible in .NET4? Can I do it using IntPtr do you think? [URL] RefCount.Item(entity) = prevCount + 1