I'm sure this is a pretty simple question but I can't seem to find the answer on Google. Say I've got a function that does some stuff and returns a string. I can assign its return value to a variable:
Dim result As String = MyFunction()
But sometimes I want to perform the actions within the function but I don't care about the return value. I know I can simply call the function from code.
Sub Main()
' Code
MyFunction()
' More Code
End Sub
This works and does exactly what I need it to. My question is - are there any issues or pitfalls in doing this? Particularly I want to make sure I'm not introducing any performance or memory leak issues.
I'm currently working with a client's VB.Net code, which was developed for them by a small development shop a few years ago and which they purchased and have been maintaining and uprgrading since. This client's primary developer is out on indefinite (likely permanent) medical leave and I'm now filling in until they bring in a full timer (as I'm a contractor here). My current task is to add some functionality to a the VB.Net code they purchased. I'm finding practices and techniques in the code that absolutely baffle me and can't make the code do what I want. I'm starting to wonder if it's me and was hoping to get some thoughts on the code I've encountered.
For example: Setting a variable to accept the result of a function by calling the function with many parameters, clearing the parameters in the function, setting them to some value, calling another function with those new values, then never using the values returned by the functions. I'll add a code snippet in the first comment since this is already getting long.
I have a function where I am performing a lot number of database operations inside a Sub. The operation when called directly like:ExecProcess()
takes about 11 seconds to run.However, if I create a Delegate, and call the sub using BeginInvoke(), the very same process takes over 40 seconds to execute.Here's the threaded code:
Protected del As ProcessDelegate Protected Delegate Sub ProcessDelegate() del = New ProcessDelegate(AddressOf SELocal.ExecJob) Dim cb As New AsyncCallback(AddressOf Me.ExecJobComplete) del.BeginInvoke(cb, del)
Anyone know what may cause a function to take longer inside a new thread, rather than calling directly?
I am having a problem with the BackOrdered Function of my program. I can`t get it to say anything but 0 when I run the program. Another problem I am having is the input box pops up like 6 times and it`s only suppose to once. [Code]
I have used the PInvoke Signature Toolkit to create VB.NET function definitions for three fairly simple C functions contained in an external DLL. The problem is that two of the parameters are structures so pointers need to be sent and one structure (fileview) is undefined.
The structure of fileinfo is defined so I can create a structure definition in VB.NET and create an IntPtr to that structure with Marshall.AllocHGlobal. And then I can use Marshall.StructureToPtr to copy the data and do the inverse when the data is returned.
I'm having some problems calling a C function from a DLL. The function is returning -101 which translates as a "bad parameter". The values I am passing have been returned from another, successful function call, so my current assumption is that I've built the structure incorrectly.The function definition is:
int sm_switch_channel_input(struct sm_switch_channel_parms *switchp) Parameters *switchp (a structure of the following type): typedef struct sm_switch_channel_parms {
in a DLL that takes a pointer to a structure as a parameter.The C and VB code is as follows.Am I passing the structure in calling the DLL correctly? I am asking because the API call returns a valid error code indicating error opening the com port specified. I tried all valid ports (com1 on a Vista 32 machine with a USB-Serial device and com1 defined in device mgr, com1 and com2 on a desktop with winxp and 2 real serial ports).I dont have the code for the DLL and cannot debug into the DLL code.
The function is something like this: "function recieveFindPlayerResponse(displayString)"Now, how can I call it. I was trying this:Call AxShockwaveFlash1.CallFunction("_root.recieveFindPlayerResponse(displayString)")And before I had this, I had a Call function which defines displayString. (Works, as I've tested it before, and no error is given to this.)Now, how can I call a function like the above?
And example of what the code looks like from ******* swf decompiler is: function recieveFindPlayerResponse(displayString) {
in VVB.net I have a string that contains the name of a function, say dim funcstr as string = "MyFunc1". How do I call the function or sub whose name is contained in the string funcstr (in this case, MyFunc1)?
I would like each entry of data to have a button associated with it that could call a server function to submit data to a database. I currently have the button implemented, but no idea how to go about calling a function that would be able to detect what button was clicked.
I've designed a Windows Service in Visual Basic 2005 that needs to call some functions from a DLL written in Delphi 5. If I try to add this DLL as a reference, I get this error:
"A reference to 'C:ProjectsServiceProMDPUpdateServiceMessageStubApplicationSPHost.dll' could not be added. Please make sure that the file is accessible, and that it is a valid assembly or COM component."
I assume that it is just not possible to add this DLL as a reference to my VB2005 project, since the DLL was written in an old version of Delphi, correct? This isn't a big deal, as I can just use the DllImport function from System.Runtime.InteropServices, but if it is possible, adding it as a reference would be preferred.
My other question is, how would you be able to call a function from the DLL using DllImport, if the function you are trying to call takes a Delphi record data type as a parameter (if this is possible)? If possible, would I need to pass each field in the record separately or would I be able to define a structure in my VB app that mirrors the record definition in the Delphi DLL and pass that? Or, would it be best if I just created another function in the Delphi DLL that took various string/integer/boolean/etc. parameters that I could call from VB that would then call the original function in Delphi? I tried searching the internet for this specific question, but I couldn't find anything that looked useful.
I have an XML file with a list of tasks to be executed. One of the elements of the XML file is funcName (function name), which is the name of a function to be executed in my Visual Basic.NET application (v4).I can retrieve the string name of the function, but how do I go about running it? I have two Class files, GUI and DISP.[code]
Is it advisable to call a function from another form?Does it have any side effects on the system while running, like more process will consume?I have a function that will set the background in a form, it will make the image stretch, backcolor transparent and will set the picture. If I will use that function in other 15 FORMS I can minimize my code.
I have an 100 aspx files with one module file for code. All these aspx files have the same backend function, so i created on public module for all these files to access. These files are in the same folder. But for some reason the aspx files cannot access the function from that module.
mod1.vb Code (.vb file) Public Module Allinone Sub Allinone_Load(ByRef Page As Web.UI.Page)
[Code]....
I am at a roadblock of why the aspx files wont read this module? Also all these files are in the same directory
I have a couple of threads running. One is a trigger which picks up a system event, the other processes stuff. When the trigger picks up the event I want it to notify the processor thread to do stuff. The threads are both started within the same class and can access the thread-object of the other thread. How do I set up the function call though?
Question: I want to call a generic function, defined as:
Public Shared Function DeserializeFromXML(Of T)(Optional ByRef strFileNameAndPath As String = Nothing) As T
Now when I call it, I wanted to do it with any of the variants below:
Dim x As New XMLserialization.cConfiguration x = XMLserialization.XMLserializeLDAPconfig.DeserializeFromXML(Of x)() x = XMLserialization.XMLserializeLDAPconfig.DeserializeFromXML(GetType(x))() x = XMLserialization.XMLserializeLDAPconfig.DeserializeFromXML(Of GetType(x))()
But it doesn't work.I find it very annoying and unreadable having to type
x = XMLserialization.XMLserializeLDAPconfig.DeserializeFromXML(Of XMLserialization.cConfiguration)()
Is there a way to call a generic function by getting the type from the instance ?
Is it possible to call a function within an asp.net web application from outside that application e.g. with VB.net? If so it would be great to see a hello world type example.
For arguments sake lets say I have my function "helloworld" in a class file within web application: [URL]
My ultimate goal is to enable some reliable / robust scheduling of functions within asp.net. I have read multiple examples about using web services / custom services running on the server etc but I don't really get the implementation.
I understand that vb.net doesn't have a HANDLE type, but as far as I knew, you could use IntPtr instead. This is the code in vb.net: <DllImport("netclient.dll", EntryPoint:="netagentsearch")> _Public Shared Function GetDeviceList(ByVal nPort As Integer, ByRef nError As Integer) As IntPtr End Function Dim test As IntPtr = WirelessLedCtrl.GetDeviceList(7, error) The error I receive when trying to run the VB.NET code is:
DLLImport_Wireless.WirelessLedCtrl::GetDeviceList' has unbalanced the stack. This is likely because the managed PInvoke signature does not match the unmanaged target signature. Check that the calling convention and parameters of the PInvoke signature match the target unmanaged signature.
Is there something I am doing wrong?I just solved a major problem that I've been working on for 4 months, so if I end up having to use C++,
In my application I'm trying to invoke a function from an external DLL (this DLL is compiled in C++)I have this code to declare the DLL function:
Code: <DllImport("{DLLPATH}", CharSet:=CharSet.Auto, SetLastError:=True)> _ Public Shared Function functionName(<MarshalAs(UnmanagedType.VBByRefStr)> ByRef Name1 As
I have this simple function (below) that randomizes number between 1 to 10. This function works well, except when Random() returns 5, which means intLot=5, randomizeAgain = true, and then the same function RandomizeNo will be called to randomize again. (refer the code below)
Even the new value of intLot equals other than 5 next time, say 4, the funtion returns 0.
I have no idea why. Function RandomizeNo(ByVal totalLot As Integer) As Integer
The following two statements seem the same to me but the first throws a design time error, and the second does not. The first one is passing the first parameter in hex and the second passes the first parameter as its decimal equivalent.
Public Shared ReadOnly Test As New Guid(&HCC58E280, &H8AA1, &H11D1, &HB3, &HF1, &H0, &HAA, &H0, &H37, &H61, &HC5) Public Shared ReadOnly Test2 As New Guid(3428377216, &H8AA1, &H11D1, &HB3, &HF1, &H0, &HAA, &H0, &H37, &H61, &HC5)
Here is the error associated with the first statement:
Error 1 Overload resolution failed because no accessible 'New' can be called with these arguments: 'Public Sub New(a As Integer, b As Short, c As Short, d As Byte, e As Byte, f As Byte, g As Byte, h As Byte, i As Byte, j As Byte, k As Byte)': Constant expression not representable in type 'Short'. 'Public Sub New(a As UInteger, b As UShort, c As UShort, d As Byte, e As Byte, f As Byte, g As Byte, h As Byte, i As Byte, j As Byte, k As Byte)': Constant expression not representable in type 'UInteger'.
I have a console application consisting of two modules. One module named "quote" is the main module for the application. Another module named "common" contains commonly used functions and subroutines that are shared between multiple applications.
In the "common" module is a function named "quote". If I attempt to call the "quote" function from the module named "quote", then I get the following error: Error 1 'quote' is a type and cannot be used as an expression. However, if I copy the quote function from the "common" module to the "quote" module, then I no longer receive this error.
There shouldn't be an issue with calling a function that happens to have the same name as a module, but only when that function is located in a different module.
I am working on an desktop application in which I am using WEB BROWSER component. There is a Javascript function within the webpage I want to call from my vb.net application. I am not attaching any code with this post because I couldn't find anything relevant on internet as all example involve asp.net server controls, no VB.Net desktop Application example.
way out to call JS function of the webpage loaded in the browser component through VB.Net Form Button.
I'm using a 3rd party DLL to access a proprietary Database. It's designed to invoke a function called "CALL_ME_FUNCTION" to make the datarows available to my program. What makes it difficult is the CALL_ME_FUNCTION is in the VB program and therefor, external to the DLL iteself. I've got the CALL_ME_FUNCTION written in my program, but how do you give access of it to the DLL? I've written lots of code that invokes functions inside a external DLL, but this is the first time I've encountered a DLL that needs to run a VB function.
I have one master page and then content page on the master page and also have one UC on the master page, now i want to filter data from usercontrol on and populate on content page using delegate.
I have achieved this in C# but i am not able to do this in VB.NET
Because in VB.NET i am not able to overload event of the uc.
I have compiled a C# class as a .dll named TileCalculations.dll Within the Class its namespace is TileCalculations and the Class is TileSystem
namespace TileCalculations { static class TileSystem
I have attempted to add this to a vb.net poject using Project > Add Reference and navigating to that file and selecting this dll. I see the dll in my Project Properties Window and the Local Copy property is set to True.