VS 2005 Unmanaged API Using Structures/pointers And ***?
Aug 23, 2011
I am in the process of writing a tool to manage DHCP servers using the DHCP Server API. Its an unmanaged DLL so using it is a PITA at least for me it has been.Currently I am stuck trying to enumerate the IP ranges in a particular IP subnet. I am able to access an array of structures but I have only been able to access the first structure in the array of strucutres.Using this I can sucessfully access the first structure in the array.
Dim element_info_array As DHCP_SUBNET_ELEMENT_INFO_ARRAY
Dim element_data_ptr As LPDHCP_SUBNET_ELEMENT_DATA
...
element_data_ptr = DirectCast(element_info_array.Elements, LPDHCP_SUBNET_ELEMENT_DATA)
However when I use this to try and loop through them one at a time it does not work. The ptr returns 0 is null.
Dim element_info_array As DHCP_SUBNET_ELEMENT_INFO_ARRAY
Dim element_data_ptr As LPDHCP_SUBNET_ELEMENT_DATA
For i = 0 To size
[code]....
The sizeof for DHCP_SUBNET_ELEMENT_DATA could be off due incorrectly setting up the union structure for it. I was not sure how it define it so that only the first ElementType and one of the other components is avalible at any given time. It wont even read the first pointer though so that has not even come into play yet.
<StructLayout(LayoutKind.Sequential)> _
Public Structure DHCP_SUBNET_ELEMENT_DATA
Public ElementType As DHCP_SUBNET_ELEMENT_TYPE
[code]....
View 3 Replies
ADVERTISEMENT
Feb 18, 2009
Correct the problems with this function, and then extend it so that it also returns a usable array of pointers to some structures.
The extended version of this function should: Maintain the same "char *" return type which returns a pointer to a usable, for storing a C string, memory buffer.
In addition, also return a usable array of pointers to structures. This array of pointers is of variable and random length, which must be obtained using GetNumberOfSomeSeqsToGenerate(), which is called, ONLY, from within this new extended version of the function.
The type of these structures and the function that should be used to get these structures are defined as follows:
typedef struct {
char* name; /* '\0'-terminated C string */
int number;
} SomeSeq;
[CODE]...
View 2 Replies
Jan 20, 2009
I have a structure called 'Scheme' and in my program I want (ideally) an ArrayList of 'Schemes' (so i can add, remove schemes etc.). However, within the 'Scheme' structure, I want to have an ArrayList of 'Item''Item' is another structure. Are there any solutions out there for iterating through these arrays quite easily?
How can I easily add multiple Items to a Scheme and mutliple Schemes to my Scheme array. Code is below. When I try to add Items to a Scheme, I get the 'Object not set to a reference of an object, try the 'New' keyword', but you cannot declare 'New' keywork within a structure.
[Code]...
View 4 Replies
Sep 27, 2009
I have tried this question several times, sometimes a little in the face of MS VB teams but with no constructive answers. Perhaps with too much rant. I suspect that VB.NET does not allow me to do what I can easly do in VB5.0. The VB team should easily be able to supply the information I need, but have not yet answered the questions. I want to do a lot of work on very large bitmaps (20 Mp or more; 80Mb or more ARGB) using arrays for access. This I used to do in VB5.0 using the SAFEARRAY and BITMAP STRUCTURES. NOT the corresponding .NET CLASSES. But I now need to use an SDK requiring .NET. However, through lack of wisdom, the VB team dropped 5 critical resources on the move to VB.NET - VarPtr, VarPtrArray, the 2 structures and CopyMemory. The SAFEARRAY CLASS seems to lack a set method for array data and the BITMAP CLASS seems to lack both get and set methods for data. On building a .NET solution using VB.NET, c#.NET and C++.NET projects I could not locate the set and get methods. Interop could not upgrade my VB5.0 to VB2005 - presumably on account of these 5 problems. I was surprised that even C++ suffered too. .NET hurts. So, first off, two critcal simple questions: A) Bearing in mind that much of the .NET is tinsel-wrapped APIs, does a pointer to an array still point to a defining SAFEARRAY STRUCTURE of the original format (NOT of course to a first element of an array). If that is so, I am lucky for I can then fill and use (perhaps) my own SAFEARRAY STRUCTURE by memory manipulation in C++. B) If the same applies to a bitmap pointer I can then perhaps do the same with BITMAP STRUCTURES. If that can be done I can hopefully work in a .NET solution containing C++ (for the pointer and mmory work) and VB2005 (for the rest of the work). I can then 1) in VB define two empty byte-arrays GLOBAL in VB.NET- Pic1() and Pic2(). They do not need to be dimensioned. SAFE FROM GC 2) in VB define two GLOBAL SAFEARRAYS to match the arrays, one with one and another with 2 dims matching the bitmap in size. SAFE FROM GC 3) move ByRef the 4 objects to VC++. STILL SAFE FROM GC, LEFT EXACTLY WHERE THEY WERE. 3) copy the BITMAP data pointers to the data pointers of the SAFEARRAYS. DOES NOT MOVE ANYTHING. 4) copy the addresses of the SAFEARRAYS to the corresponding arrays STILL DOES NOT MOVE ANYTHING, BUT JOB DONE. And then I will be able to process the images in seconds rather than minutes after moving only 4 4-byte numbers. I would welcome alternative sequences, provided they DO NOT involve put and set pixels or array elements on the trivial side and do not involve moving 80Mb of image data between "safe" and "unsafe" memory on the Herculian side. Else, as the Pic() ans Safearrays MUST point somehow to structures, WHAT EXACTLY ARE THEY, AND WHERE? I want to access them. If I can't overcome these 5 silly MS blunders I'll just have to build two uncoupled projects - one in VB5.0 and the other in VB/VC++ .NET. I'm not going to get involved myself with tinsel and gladwrap workarounds.
View 4 Replies
Jun 2, 2010
I read in the Book "Mastering Microsoft Visual Basic 2008" about "User-Defined data types".The example given is creating a Structure as follows.I wanted to check that so I wrote all the code given; I used a TextBox and a Button for this.(I didn't include the "CheckDate" here; that is in the book)
Structure CheckRecord
Dim CheckNumber As Integer
[code]....
The problem is this does work.What I get is "00000". and I found out that the "Checks(4)" Array does hold any value ie: on keeping the cursor over that, it shows "CheckAmount 0.0, CheckNumber 0 , CheckPaidTo Nothing ".
View 1 Replies
Dec 15, 2010
Id'like to pass some variables (string and integers) to a class, and when I call a method of that class, it has to change the original variable.I know it was not impossible in C#, but I'm using VB2010, I made a C# project into my solution, but methods using pointers are hidden into VB. How can I make that kind of change?
An example:
Sub ChangeValues()
Dim A As Integer = 1, Str As String = "Start String"
Dim X As MyClass(A, Str)
X.ChangeInt(2)
[code]....
View 11 Replies
Jun 9, 2010
have a 2d array of structures that holds about 5 or 6 details on each cell. The array size will not be known at compile time so I am using ReDim to resize it. I also have a list (think I have it as an arraylist actually but shouldn't matter really) that I would like to hold a pointer to one of the 2d array elements (as well as some other info). The list is a much smaller subset of the 2d array. The reason I am doing this is that the list needs to be sorted based on some data in the 2d array that will be changing. I don't want to have to search through the list each time to update the values as these lists and arrays can potentially be very large.
Maybe there is a better way to handle this but even if there is I would like to know how to simulate pointers in VB.Net. I know there are IntPtr's and references that I could probably use but I have no idea how to do it with dynamic arrays of structures. I'm familair with pointers from C++ but this is the first time I have tried to use (or simulate since there seems to be no real support for them) in VB.Net.
Not sure how clear that was so here are some snippets of the data types involved and some initialization.
Code:
'structures that are in the 2d array
Structure SearchNode
[code]....
View 6 Replies
Oct 15, 2011
I'm looking for something similar to using vectors and pointers that I've used before in C++; unfortunately, it doesn't seem like there's an equivalent function in VB.net.What I have is a copy of the array behind a multi-line Rich Text Box, and I need to separate the words from each line (or element of the array) so I can analyze each one separately.In C++ I would do something like this, so I could continuously expand as needed:
[Code]...
View 6 Replies
Feb 3, 2012
i am new to commercial programing (and this site) I am currently studding Computer science at a university and i have hit my First roadblock.I am currently developing an application that displays a Table on one Form1 in a Read-Only format and a second Form2 which will only be displayed if after selecting a row on the Grid-View of Form1 you press an Edit button.We are doing that to avoid the User editing the DB in large. The Form2 is populated by a details view of the Table with no controls to change row on the table.What i am trying to accomplish is passing the information of which row was selected in Form1 to Form2 thus making it the current row and subsequently the only one been edited. Currently most things work but as soon as Form2 shows (Form2.show()) it will only display the first row of the database.I want to know if there is a way to "sync" the two indexes.
View 3 Replies
Dec 23, 2009
I have to upgrade a legacy VB6 app to VB.NET; this app uses a function call from a .dll that takes a memory address as one of it's parameters. The VB6 app does this with the VarPtr() function, but this function does not exist in .NET. How do I retrieve the memory location of a variable in .NET?
[Code]...
View 2 Replies
Sep 11, 2011
I'm looking to make a simple web traffic sniffer that will automatically reply toauthentication requests from a predefined source, but I'm not entirely sure how tostart/what I am looking at my self here.I guess it's easier to explain if you have a short backstory;I use WebDAV, but Windows does NOT have good support for this (lacking Basic auth support, and Digest support being flawed at best), so you are forced to manuallyauthenticate with a username and password every time you open a file, when you start your computer or a word document (for example) loads resource such as images (imagine writing yoru username and password for every image in a powerpoint!).
View 2 Replies
May 19, 2011
have an app where the user can select to search websites I have "Hard-Coded" into the app and select categories and sub-categories to search within those websites.What i need is to figure out how to take a user defined search query (Example: The Holy Bible King James Version), then search the relevant websites (behind the scenes) then output the results something like a google or bing search, then allowing the user to download directly their search query
View 3 Replies
Jan 17, 2010
Since vb doesnt support pointers but c# does. I am using a wrapper dll that requires a pointer to some singles to be passed within the method. I get an error that the method has some parameter types that are not supported. How can i pass a pointer to this method if vb .net doesnt support pointers.
View 4 Replies
Mar 28, 2009
How Should I Use Diffrent Types Mouse Pointers in .Net for Each Form? How Should I Play a mp3 sound File From "D:My Locationsound.mp3"? How Should I Create an Set up File in VB.Net 2008? How Should I Make a Form Shaped Round? How Should I Use The Mouse as Mouse Touch Event?
View 1 Replies
Oct 27, 2009
I'm trying to call C code in the form of DLL's from Visual Basic. When I do everything passed by value I have no issues. But what I really need is to return multiple pointers to arrays of sizes I don't know at compile time (so I'd have to dynamically allocate that memory). For instance
[Code]...
Here the array sizes are hardcoded but that's for the simple fact I didn't want to copy my whole algorithm over, in my actual code I wont know the array sizes at compile time. So my questions are these:How do I make the function declaration in Visual Basic 2008? How do I free up the memory in Visual Basic that these pointers point to?
View 3 Replies
Jan 27, 2011
My application uses a third party API. This API uses a few functions that returns a value by reference as one of the function parameters. Problem is according to their documentation, the value I am trying to get out of this function is a string pointer.
So if that made no sense, heres an example of the syntax of the function as shown in their documentation:
long ExampleFunction(long ID, long PropNum, char* name, long MaxStringLength)
Input Parameters: ID, PropNum
Output Parameters: name, MaxStringLength
Thats pretty much all the info I've got. Obviously they are not using VB.Net, looks like C to me. I want to get the name output parameter and work with it, but once I get this value, I cant change anything. I know this is because its a pointer (reference type?) but I am still at a loss as to what to do.
View 1 Replies
Mar 30, 2011
I had recently(2 months before ) found some code for locking the screen. Here's the link to that code submission in our CodeBank : [URL]
I wish to get a clear idea of what it actually does. As it is a bit advanced code for me.
Here's the main part of the
CODE:
View 6 Replies
Aug 15, 2009
I am using these API functions for my project where I am handling 3 unmanaged DLLs of two external apps, basically all it does is to carry data back and forth between these external applications. The project needs a lot of use of pointers, passing pointers and reading/writing to memory so both applications can talk to each other.
Declare Function HeapAlloc Lib "kernel32.dll" _
(ByVal hHeap As Long, ByVal dwFlags As Long, ByVal dwBytes As Long) As Long
Declare Function HeapCreate Lib "kernel32.dll" _
[code]....
set of windows API functions for allocating memory, reading and writing to allocated memory, and other required functions to generate required arguments to pass to these API calls?I am up to where I am allocating memory and getting pointer, but I don't know how to go about reading, writing, passing pointers, finding data lengths and reusing memory.
[code]....
View 6 Replies
Jul 20, 2009
I'm attempting to create a list of structures that contains a list of structures. I can't seem to figure out how to properly allocate the object for the inner list of structures. I expect the outer list of structures to have a couple thousand entries and the inner list of structures to be fairly small at 2 to 10. Both lists will grow over time but the number of elements within the inner list will be constant for an instance of the outer list. Meaning, if an instance of the outer list has 2000 entries each of those will have the same number of elements on the inner list, say 4 entries.
Here is a simplified code fragment. This fragment makes no attempt to create the instance of the inner list "StructBlist" since I can't figure out where to put it. Tried "New List(Of StructB)" in the declaration as well as "Alist(0).StructBlist = New List(Of StructB)" but neither works.
Public Class Form1
Structure StructA
Dim FieldA1 As Integer
[Code]....
View 5 Replies
Jan 8, 2010
i need to pass commands through a C++ dll to vb.net and the other way around. is there some code that needs to be in the C++ dll to make it work? im not good at C++ at all,
View 5 Replies
Oct 9, 2010
im trying to make a simple wrapper for lua. The only problem so far is that lua only accepts a method in a specific format.Delegate Function LuaC Function(ByVal lua_state As IntPtr) As Integer..That is how lua wants the method to look like. So it only accepts a function that looks like this: [code]
View 2 Replies
Jan 5, 2010
I created a vb.net dll called "WSdll.dll".I compiled it, created a type library (tlb), and registered it globally(gacutil)..It includes a file called wsutils.vb, which includes a namespace called "wsutils".In the namespace, there's an interface (with attribute) called "IWSconnection", and a class called "WSconnection".The interface and class are public, as are all methods and properties.[code]...
View 2 Replies
May 18, 2012
I have an application written in .NET 4.0 that needs to load in memory a native DLL (written C). At the moment I am using a P/Invoke call to LoadLibrary passing the path where the DLL is located. This works, but due to the fact that this DLL comes from a DB, I would like to know if it is possible loading it through a stream, avoiding then the necessity to store the DLL somewhere in the filesystem.
View 2 Replies
May 5, 2009
I have an application which has been succesfully installed on a number of different client machines.
The problem I now have is that I have been asked to allow third party applications, possibly written in a non .net language set to plug into my application and execute some of the code. Just a handfull of properties and half a dozen methods.
Now I can wrap up these properties/methods, make them public and have them in their own project which will be part of my solution but I have no idea where to go from here.
How do I make this portion of my application accessible to a third party application written in unmanaged code ?
View 1 Replies
May 25, 2010
Question: I use an embedded Firebird database in ASP.NET.
Now, Firebird has a .NET wrapper around native dlls.
The problem is, with the ASP.NET compilation and execution process, the dlls get shadow copied to a temporary folder. Unfortunately, only the .NET dlls, and not the native dll.
See [URL] for details.
Now, this makes it necessary to put the unmanaged dll somewhere into the system32 directory (or any other directory in the path environment variable).
Now, I want to change the wrapper/native dll (opensource), so it loads the dlls also if they are only in the bin folder.
Now, my problem is, how can I, in .NET, load an unmanaged dll from an absolute path ? The absolute path is determined at runtime, not at compile-time...
View 2 Replies
Feb 17, 2010
I have an unmanaged DLL and need to call one of its functions. Here's the [code]...
View 5 Replies
Sep 20, 2009
Maybe this is not true ... But how to connect an unmanaged DirectX to VB.NET? For anyone dll I use <DllImport()>, but Unmaged DirectX have interface.... Than I tried use "<ComImport(), Guid(...)...>", but I do not know how to use COM interfaces Maybe I did not really understand COM technolgy... I tried find documentation "how to use com interfaces", but found nothing.
View 1 Replies
Jun 12, 2009
I'm having some trouble finding the syntax for making function calls to unmanaged DLLs in VB.NET. Let's just assume there's a function "Connected" in unmanaged DLL "Connector.DLL". I want to call this function by creating an abstract function call to it.
I've seen some code out there that looks something like
[DllImport("Connector.DLL")]
Public Shared Function Connect(ByVal intPort)
But that syntax doesn't work for me.
View 2 Replies
Mar 3, 2010
I need to call a function in an unmanaged .dll written in C lang from vb.net. The function declaration looks like this [code]Now the behavior of this function is that it copies some data in argument "reply" and returns a numeric value which signals its pass/fail status. How do i pass it a string object so that it can copy data. Following is how i access this function.[code]When the call completes, returned status is absolutely fine but there is nothing in string "str". What is it that i am missing. I'm not sure about the string object that i am passing as argument.
View 3 Replies
Mar 3, 2010
I need to call a function in an unmanaged .dll written in C lang from vb.net. The function declaration looks like thisLONG _stdcall ReadInfo(char *reply);Now the behavior of this function is that it copies some data in argument "reply" and returns a numeric value which signals its pass/fail status. How do i pass it a string object so that it can copy data.Following is how i access this function.
View 2 Replies