|
Hi
You are using a simple dll, not a COM dll. When you are trying import a basic dll wihtout interface, you can´t reference using your VB tool development.
You need inport it by code.
VB.NET sample:
--------------------------------
<dllimport("libraryname.dll")> _
Public Shared Function FunctionName(ByRef Param1 As Integer, _
ByRef Param2 As String, _
ByVal Param3 As Integer) As Long
End Function
--------------------------------
Regards
"On the 8th day, God started debugging"
|
|
|
|
|
i´m using VB6, and It don´t have "Shared".
I only want use a simple DLL from this example :http://www.codeproject.com/dll/BeginnerDLL.asp
But I don´t know how import the dll, and where i have to copy the dll (because i don´t want registrer it )
i´m so confused
el hombre es libre cada vez que elige y eso es lo que lo hace libre
|
|
|
|
|
Martin_Viet wrote:
But I don´t know how import the dll, and where i have to copy the dll (because i don´t want registrer it )
You can place the .dll in whatever directory you want it in, however you do need to register the .dll. Go to a command prompt and change the directory to the location of the .dll. Once there type (where myFile is the name of the .dll):
regsvr32 myFile.dll
-Nick Parker
|
|
|
|
|
But I found it:
If you do not specify a path for libname, Visual Basic will search for the file in the following order:
1)Directory containing the .exe file
2)Current directory Windows system directory (often but not necessarily Windows\System)
3)Windows directory (not necessarily \Windows)
4)Path environment variable " [Visual Studio 6.0 Help]
So i´m trying to do this :
Public Declare Function SayHello Lib "MyDLL.dll" () As Boolean
But a message error appeared
el hombre es libre cada vez que elige y eso es lo que lo hace libre
|
|
|
|
|
Hi
I´ll explain in spanish, becase I think, you'll understand better the explanation:
1.Necesitas registrar la dll en el sistema, para ello copia la dll al winnt\system32 y desde ahí ejecuta "regsvr32 TuLibreria.dll"
2.Una vez registrado abre el VB y en el menu busca "Proyecto/Referencias"
que abrira una ventana donde puedes examinar y seleccionar la dll.
3.Una vez referenciada, solo has de instanciarla por codigo, como por ejemplo:
Dim ObjDLL As New PuntoDeEntradaDeLaDLL()
Regards and good luck.
"On the 8th day, God started debugging"
|
|
|
|
|
Martin_Viet wrote:
So i´m trying to do this :
Public Declare Function SayHello Lib "MyDLL.dll" () As Boolean
But a message error appeared
The .dll still needs to be registered, then just specify the path to the file. Just by specifying the file's path does not mean you have registered the file, these are two different things.
-Nick Parker
|
|
|
|
|
Hello,
You can try this. Register your DLL with regsvr32 utility.
1> Goto Start Menu. Press run. Type regsvr32 "path of DLL". And just press Ok. You will get the message of registration by Windows.
2> Or, Double Click on the DLL. It will ask you about the program to be open. Choose the regsvr32.exe from Windows directory. Press ok. Windows will register your DLL automatically.
Make sure that you have to place your DLL in the directory which has your project through which you are accessing the DLL code.
Regards,
Vilas Shewale
|
|
|
|
|
very I am pleaced
It has been eassier on this way, which determines that I am going to have to continue practicing languages both (English and VB )thanks and greetings
el hombre es libre cada vez que elige y eso es lo que lo hace libre
|
|
|
|
|
This is kind of lengthy... but this is how i do it.
First, create a dll project in vcc. Select MFC AppWizard(DLL).
Select Regular DLL. Does'nt matter whether MFC is static
or shared.
Create a .cpp file for your function you want to call. You
will have to create "C" style function because you cannot do
external linkage to vb with C++ classes.
This example is a function called Function123. It takes a string you can modify and returns a UINT.
prototype:
extern "C" UINT __stdcall Function123 (LPSTR lpszBenefits);
the body looks like this:
extern "C" UINT __stdcall Function123(LPSTR lpszBenefits) {
AFX_MANAGE_STATE(AfxGetStaticModuleState()); // This line is important!!!
// do something
return someUINT;
}
Now find the .def file that vc created. It should be under
source files where the rest of the cpp files are.
Add the following entry to the file:
Function123 @1
The @1 indicates that this is function #1 to be exported. If you add
more functions then they should be as @2,@3 etc.
Compile your project and produce the DLL.
Now, in VB:
Add this line at the top of a module file:
Private Declare Function vbfunctionname Lib "EChartPatients.dll" Alias "Function123" (ByVal strName As String) As Long
Now in your module to use this function:
...
dim x as integer
dim y as string
x= vbfunctionname(y)
...
The DLL you created does not have to be linked to the vb exe in any way except that it has to be in the executable path, or, you have to hardcode the path + name in the vb declare statement.
Warning: Initialize your vb string to the max length required prior to sending it into the dll.
|
|
|
|
|
Hello Everybody,
I am developing a Module in which I suppose to use Web Browser control which acts as Windows Explorer. I am tried most of the functionality with SendMessage API with different parameters like IDM_SHVIEW_LARGEICON, IDM_SHVIEW_SELECTALL etc.
But now I want to create a New Folder in the exact way Windows Explorer allows user. For consideration, let's say we will click a button & New Folder functionality should work. All the mention parameters are working with SendMessage API except IDM_SHVIEW_NEWFOLDER.
'Declaration
Private Const IDM_SHVIEW_NEWFOLDER = &H7261
'In command button
SendMessage(hwndSHView, WM_COMMAND, IDM_SHVIEW_NEWFOLDER, 0)
' hwndSH = handle of the SysTreeView32
' WM_COMMAND = message
' IDM_SHVIEW_NEWFOLDER = lParam for action to be performed
' 0 = wParam
I cross check the window's handle value. Also assigned handle the default value (which I got from SPY++).
Please help me out from this problem.
Regards,
Vilas
|
|
|
|
|
|
Hello,
Thank you for your early help. I had gone through that web page earlier. But i don't think so it will help me in solving my problem. Could you suggest me another solution?
Regards,
Vilas Shewale
|
|
|
|
|
Is there anyway to edit the standard printpreview dialog in VB.Net? If no, is there anyone whos got a better PrintPreview dialog than the standard one, and if so, were do I get my hands on it
/Fleischen
|
|
|
|
|
Please forgive me, I am new to Visual Basic. I am teaching myself by reading through a book. In one of the examples of the book, it states to add a new reference that you right click on the references of the project and select add new reference. It then brings up an add reference dialog and I am supposed to go to the third tab (projects). I go there and select the project that I want to add, and it gives me an error that "an assembly must have a .dll extension in order to be referenced." Nowhere in the example program does it say that I need to change the extension of the module. Do I need to change the extension or should I be able to just add the project? Thanks for your help!
Kogorman
|
|
|
|
|
Hello,
You do not have to change your module or project from .Bas to .Dll. If you want to add a reference in VB, then those should be either standard or third party .DLL or .OCX etc. When you have these components with you, you can add the reference of that component in your project.
You can see the standard 3 DLL's checked in the window of the reference(which provides standard functionality to your project without adding any new reference). If you want to use third party DLL then you have choose it from the folder in which it is placed.
So have fun & enjoy the coding.
Regards,
Vilas Shewale
|
|
|
|
|
1) You can onlt reference assemblies that are libraryies of functions (files that have a .dll extension) I don't think you can make a reference to a project that is used to build an exe file.
2) You need to make sure that the assembly project you are referenceing has been built at least once so there is a dll file to reference. Try right clicking on the project and building it before you add the reference.
Paul Watson wrote:
"At the end of the day it is what you produce that counts, not how many doctorates you have on the wall."
George Carlin wrote:
"Don't sweat the petty things, and don't pet the sweaty things."
Unknown wrote:
"I love long walks, especialy taken by those that annoy me."
Paraphrased from TMNT:
"Cricket? You have to know what a crumpet is to understand Cricket."
|
|
|
|
|
Hello All!
I managed to write into the regedit keys and assign a icon and description to a new file type i'm using!
I would like to know how to Update those value without having to log off!
Thank you in advance
|
|
|
|
|
Any help with this is appreciated VERY much.
My trouble: I have a mini-CRM app that I am writing and I have a SQL database with multiple tables - Account, Region, etc. Each row in the Accounts row has an ID column that is the primary key and is auto-incremented. The same goes for the Region table. In the region table, each row had a region of the state (ie. Central, South). Let's say the table is as follows:
ID Desc
1 Central
2 South
On the form to create a new account, I want to display the Desc column values but insert the ID field into the Account table, so there is less data to store. I am trying to use a combobox to display all regions, and have so far been unsuccessful in inserting only the ID field into the Accounts table. I am using VB.Net, VS 2003 beta, and am using VS-created datasets and data adapters. Am I going down the correct path, or should I buy another book and read more. On the new Account form I have info from multiple tables with which I am trying to do the same thing, so I don't want to use a large number of datasets to store all data.
Thank you all for you help.
- Robert W. Dempsey
|
|
|
|
|
if some one can tell how can i lock the system date/time from my vb.net application so that it can not be changed.
Please tell me with source code.
|
|
|
|
|
What do you mean?
Do you want to stop windows users from changing the date/time?
The system time originates from the system clock which any user can change from windows/dos ect. If you have Win2k or NT4 there may be a way for you to stop them from accessing these options by restricting thier accounts although i'm not sure how.
As for locking the date/time from your app. surely if you dont include code that sets the date time which is accessable to the user, then they won't be able to do so.
I think you need to clarify what you are trying to do.
Regards
Wayne Phipps
|
|
|
|
|
We are trying to developing small DNA application using VB .NET. We have defined one interface project. Ther are two types of class one is for property (IAc) & other is for method (IAcExec). We implement IAc in business tier & IAcExec in Data Tier. Data tier is resides on MTS. We are using ActivatiopType is server. We have faced problem like When we pass ByRef Me (i.e Implements class of IAc) from Business tier to data tier using function/sub. (Function fill the value of interface class.)At that time we have not received values at business tier through ME object. In brief it just treat as ByVal Me. Same when we declare varible for business tier class (i.e Implements class of IAc) and pass object then we have recd. values with same function/sub.
Please give me suggestions on it.
|
|
|
|
|
Can I compile VB6 code in VB7?
Rickard Andersson@Suza Computing
C# and C++ programmer from SWEDEN!
UIN: 50302279
E-Mail: nikado@pc.nu
Speciality: I love C#, ASP.NET and C++!
|
|
|
|
|
you can convert VB6 to vb.net
but compile vb6 as it is .. i don't think so
|
|
|
|
|
okay, I was wondering because my school will give me VB6 very soon, but I already own VS.NET so I don't want to install VB6 unnecessarily!
Rickard Andersson@Suza Computing
C# and C++ programmer from SWEDEN!
UIN: 50302279
E-Mail: nikado@pc.nu
Speciality: I love C#, ASP.NET and C++!
|
|
|
|
|
VB6 and VB.Net can both be installed on the same PC (side by side) without affecting each other.
Regards
Wayne Phipps
|
|
|
|