Search Results

Search found 337 results on 14 pages for 'dllimport'.

Page 1/14 | 1 2 3 4 5 6 7 8 9 10 11 12  | Next Page >

  • 32 bit dllimport generating incorrect format error (0x8007000b) on win7 x64 platform

    - by DFP
    Hello, I'm trying to install and run a 32 bit application on a Win7 x64 machine. The application is built as a Win32 app. It runs fine on 32 bit platforms. On the x64 machine it installs correctly in the Programs(x86) directory and runs fine until I make a call into a 32 bit dll. At that time I get the incorrect format error (0x8007000b) indicating it is trying to load the dll of the wrong bitness. Indeed it is trying to load the 64 bit dll from the System32 directory rather than the 32 bit version in the SystemWOW64 directory. Another 32 bit application provided by the dll vendor runs correctly and it does load the 32 bit dll from the SystemWOW64 directory. I do not have source to their application to see how they are accessing the DLL. I'm using the DllImport function as shown below to access the dll. Is there a way to decorate the DllImport calls to force it to load the 32 bit version? Any thoughts appreciated. Thanks, DP public static class Micronas { [DllImport(@"UAC2.DLL")] public static extern short UacBuildDeviceList(uint uFlags); [DllImport(@"UAC2.DLL")] public static extern short UacGetNumberOfDevices(); [DllImport(@"UAC2.DLL")] public static extern uint UacGetFirstDevice(); [DllImport(@"UAC2.DLL")] public static extern uint UacGetNextDevice(uint handle); [DllImport(@"UAC2.DLL")] public static extern uint UacSetXDFP(uint handle, short adr, uint data); [DllImport(@"UAC2.DLL")] public unsafe static extern uint UacGetXDFP(uint handle, short adr, IntPtr data); }

    Read the article

  • Specify the search path for DllImport in .NET

    - by Stefan
    Is there a way to specify the paths to be searched for a given assembly that is imported with DllImport? [DllImport("MyDll.dll")] static extern void Func(); This will search for the dll in the app dir and in the PATH environment variable. But at times the dll will be placed elsewhere. Can this information be specified in app.config or manifest file to avoid dynamic loading and dynamic invocation?

    Read the article

  • DllImport and char*

    - by Malfist
    I have a method I want to import from a DLL and it has a signature of: BOOL GetDriveLetter(OUT char* DriveLetter) I've tried [DllImport("mydll.dll")] public static extern bool GetDriveLetter(byte[] DriveLetter); and [DllImport("mydll.dll")] public static extern bool GetDriveLetter(StringBuilder DriveLetter); but neither returned anything in the DriveLetter variable.

    Read the article

  • GetDC() DllImport for x64 apps

    - by devdept
    If you make a little research on the internet you'll see many DLLImport styles for this user32.dll function: HDC GetDC(HWND hWnd); The question is: what type is more appropriate for .NET x64 apps (either compiled with the Platform target as AnyCPU on a x64 machine or specifically as x64)? IntPtr for example grows to a size of 8 on a x64 process, can this be a problem? Is uint more appropriate than Uint64? What is the size of the pointers this function uses when used in a x64 process? The DLL is called user32.dll does it work as 32bit or 64bit on a x64 operating system? [DllImport("user32.dll",EntryPoint="GetDC")] public static extern IntPtr GetDC(IntPtr hWnd); public static extern uint GetDC(uint hWnd); public static extern int GetDC(int hWnd); Thanks!

    Read the article

  • Asp.Net C# DllImport problem

    - by user346665
    Hi, I want to import DLL file in my web site project. I have dll file "my.dll" in folder C:\DLLDir and I'm using the code : [DllImport("C:\\DLLDir\\my.dll", EntryPoint = "Out32")] This works ok. But I want to use relative path (web site root path) . I'm trying to put "my.dll" in "bin" or root folder and I'm using the code : [DllImport("my.dll", EntryPoint = "Out32")] but I'm getting the error: Unable to load DLL 'my.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) Any ideas?

    Read the article

  • Running DllImport commands from CreateRemoteThread

    - by Gbps
    I have a function named Msg that's imported from a dll named tier0.dll. I can DllImport this just fine, but the command only works when the dll is attached to another process which can complete the Msg command. Using CreateRemoteThread, it is possible that I could call Msg using C# while still letting it have access to the variables of the attached process it needs to complete the command? Thanks!

    Read the article

  • dllimport C++ DLL In VB.net

    - by JFLow
    Hi Experts out there, I'm stuck at dll imports with the c++ dll and i really need help to get over this. Here is the function in the c++ dll that i want to call from my VB.net code. bool LoadNewTestPlan(const char* szPlanFileName=" "); I've tried many ways in my VB.net but always getting the error : "Attempted to read or write protected memory. This is often an indication that other memory is corrupt." I have tried passing in byte(), Marshalling with LPStr, SafeArray and nothing works. Here is the example of my code code within the module <DllImport("HPVKIfc.dll", EntryPoint:="?LoadNewTestPlan@HPVKIfc@@QAE_NPBD@Z", CharSet:=CharSet.Ansi)> _ Public Function LoadNewTestPlan(<MarshalAs(UnmanagedType.LPStr)> ByVal pln As String) As Boolean End Function Do you see anything wrong? Thanks in advance.

    Read the article

  • System.AccessViolation in DllImport method after redeploy

    - by gall
    Hi Everyone, My environment: Windows 2003, VS 2008, .NET 3.5 C# .NET application. During loading my application I call method from C++ dll (Knowl.dll) through my third-party dll library (Common.dll) written in C#. After first deploy (from VS to Developing server) evrything works fine. Then I stops Developing Server, doesn't any changes in code and redeploy. Throws AccessViolationException on this imported method. What is it? On second and after redeplies - the same error. Only after deletin source code and recheckout it from CVS I can normally start server. Dll import: [DllImport("Knowl.dll", EntryPoint = "GetBaseName")] private static extern IntPtr getNameDll(); public static string GetName() { IntPtr p = IntPtr.Zero; p = getNameDll(); return Marshal.PtrToStringUni(p); }

    Read the article

  • Under what conditions will you get unresolved external symbol for __declspec(dllimport)?

    - by Mark
    I am converting an application to use .dlls and I'm riddled with linker errors stating unersolved external symbol"__declspec(dllimport) public: void __thiscall Rail::SetNextrail(class Rail *)" There is more gibberish at the end of this error message. Why should this happen and how do you fix it? __declspec(dllimport) is being placed with a macro defined as: #ifdef LUDOAI_EXPORT #define DECLSPECAI __declspec(dllexport) #else #define DECLSPECAI __declspec(dllimport) #endif

    Read the article

  • FindWindowEx from user32.dll is returning a handle of Zero and error code of 127 using dllimport

    - by puretechy
    I need to handle another windows application programatically, searching google I found a sample which handles windows calculator using DLLImport Attribute and importing the user32.dll functions into managed ones in C#. The application is running, I am getting the handle for the main window i.e. Calculator itself, but the afterwards code is not working. The FindWindowEx method is not returning the handles of the children of the Calculator like buttons and textbox. I have tried using the SetLastError=True on DLLImport and found that I am getting an error code of 127 which is "Procedure not found". This is the link from where I got sample application: http://www.codeproject.com/script/Articles/ArticleVersion.aspx?aid=14519&av=34503 Please help if anyone knows how to solve it. UPDATE: The DLLImport is: [DllImport("user32.dll", SetLastError = true)] public static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string className, string windowTitle); The Code that is not working is: hwnd=FindWindow(null,"Calculator"); // This is working, I am getting handle of Calculator // The following is not working, I am getting hwndChild=0 and err = 127 hwndChild = FindWindowEx((IntPtr)hwnd,IntPtr.Zero,"Button","1"); Int32 err = Marshal.GetLastWin32Error();

    Read the article

  • DLLImport error: System.AccessViolationException with Manifest file and c#

    - by RP
    When trying to call (DLLImport) an external c++ dll from a .net application that has a manifest file with requireAdministrator, I get this error trying to call function from the C++ dll in Windows 7 with UAC enabled. Method I am calling: EnCrypts System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. public class BlowFish { [DllImport("BlowfishTool.dll", CharSet = CharSet.Auto)] public static extern String EnCrypt(String strData, String strPassword); [DllImport("BlowfishTool.dll", CharSet = CharSet.Auto)] public static extern String EnCrypt(String strData, String strPassword, bool doNotUsePassChecking); [DllImport("BlowfishTool.dll", CharSet = CharSet.Auto)] public static extern String DeCrypt(String strData, String strPassword, bool doNotUsePassChecking); [DllImport("BlowfishTool.dll", CharSet = CharSet.Auto)] public static extern String DeCrypt(String strData, String strPassword); public static String EnCrypts(String strData, String strPassword) { return EnCrypt(strData, strPassword, true); } } }

    Read the article

  • DllImport Based on OS Platform

    - by Ngu Soon Hui
    I have a mixture of unmanaged code ( backend) and managed code ( front end), as such, I would need to call the unmanaged code from my managed code, using interop techniques and DllImport attribute. Now, I've compiled two versions of unmanaged code, for both 32 and 64 bit OS; they are named service32.dll and service64.dll respectively. So, in my .Net code, I would have to do a DllImport for both dlls: [DllImport(@"service32.dll")] //for 32 bit OS invocation public static void SimpleFunction(); [DllImport(@"service64.dll")] //for 64 bit OS invocation public static void SimpleFunction(); And call them depending on which platform my application is running on. The issue now is that for every unmanaged function, I have to declared it twice, one for 32 bit OS and one for 64 bit OS. This is a duplication of work, and everytime I change the signature of an unmanaged function, I have to modified it in two places. Is there anyway that I can change the argument in DllImport so that the correct dll will be invoked automagically, depending on the platform?

    Read the article

  • Set DllImport attribute dynamically

    - by matt-bond
    I am making use of an external unmanaged dll using PInvoke and the DllImport attribute. eg. [DllImport("mcs_apiD.dll", CharSet = CharSet.Auto)] private static extern byte start_api(byte pid, byte stat, byte dbg, byte ka); I am wondering if it is possible to alter the dll file details (mcs_apiD.dll in this example) dynmically in some manner, if for instance I wanted to build against another dll version

    Read the article

  • __declspec(dllimport) causes compiler crash on MSVC 2010

    - by Zero
    In a *.cpp file, trying to use a third party lib: #define DLL_IMPORT #include <thirdParty.h> // Third party header has code like: // #ifdef DLL_IMPORT // #define DLL_DECL __declspec(dllimport) // fatal error C1001: An internal error has occurred in the compiler. Alternative: #define NO_DLL #include <thirdParty.h> // Third party header has code like: // #elif defined(NO_DLL) // #define DLL_DECL // Compiles fine, but linker errors as can't find DLL functions // I can reproduce results by remove macros and #define all together and manually editing the third party files to have __declspec(dllimport) or not Has anyone come across anything similar, or can hint at the cause? (which is created using CMake). Above is actual example of 2 line *.cpp that crashes so it's narrowed down to something in the #include. The following also work fine: Compile the examples provided by the third party (they provide a *.sln) that use dllimport/export so it doesn't appear to be the fault of the library Compile the third party lib as part of the production project (so dllexport works fine) I've trawled the project settings pages of the two projects to try and spot differences, but have come up blank. Of course, it's possible I'm missing something as those settings pages are not the easiest to navigate. I'll get access to VS2008 in a day or so, so can compare with that. The third party library is MySql++.

    Read the article

  • Delphi Prism getting Unknown Identifier "DllImport" error

    - by Robo
    I'm trying to call Window's SendMessage method in Delphi Prism, I've declared the class as follow: type MyUtils = public static class private [DllImport("user32.dll", CharSet := CharSet.Auto)] method SendMessage(hWnd:IntPtr; Msg:UInt32; wParam:IntPtr; lParam:IntPtr):IntPtr; external; protected public end; When I tried to compile, I get the error Unknown identifier "DllImport" I used this as an example, http://stackoverflow.com/questions/2708520/how-to-call-function-createprocess-in-delphi-prism and the syntax looks the same. Is there a setting I need to enable, or do I have a syntax error?

    Read the article

  • System.EntryPointNotFoundException

    - by Hema Joshi
    thank, but by using this i am getting the output c2@ubuntu:~/Desktop$ mcs testingsrp.cs -lib:/home/c2/Desktop/libsrp/libsrp.so c2@ubuntu:~/Desktop$ nm -D /home/c2/Desktop/libsrp/libsrp.so | grep SRP_initialize_library c2@ubuntu:~/Desktop$ MONO_LOG_LEVEL="debug" MONO_LOG_MASK="dll" mono testingsrp.exe Mono-INFO: DllImport attempting to load: 'libsrp.so'. Mono-INFO: DllImport loading location: 'libsrp.so.so'. Mono-INFO: DllImport error loading library: 'libsrp.so.so: cannot open shared object file: No such file or directory'. Mono-INFO: DllImport loading library: './libsrp.so.so'. Mono-INFO: DllImport error loading library './libsrp.so.so: cannot open shared object file: No such file or directory'. Mono-INFO: DllImport loading: 'libsrp.so'. Mono-INFO: Searching for 'SRP_initialize_library'. Mono-INFO: Probing 'SRP_initialize_library'. Mono-INFO: Probing 'SRP_initialize_library'. Mono-INFO: Probing 'SRP_initialize_libraryA'. Mono-INFO: Probing 'SRP_initialize_libraryA'. Mono-INFO: DllImport attempting to load: 'libsrp.so'. Mono-INFO: DllImport loading location: 'libsrp.so.so'. Mono-INFO: DllImport error loading library: 'libsrp.so.so: cannot open shared object file: No such file or directory'. Mono-INFO: DllImport loading library: './libsrp.so.so'. Mono-INFO: DllImport error loading library './libsrp.so.so: cannot open shared object file: No such file or directory'. Mono-INFO: DllImport loading: 'libsrp.so'. Mono-INFO: Searching for 'SRP_finalize_library'. Mono-INFO: Probing 'SRP_finalize_library'. Mono-INFO: Probing 'SRP_finalize_library'. Mono-INFO: Probing 'SRP_finalize_libraryA'. Mono-INFO: Probing 'SRP_finalize_libraryA'. Mono-INFO: DllImport attempting to load: 'libsrp.so'. Mono-INFO: DllImport loading location: 'libsrp.so.so'. Mono-INFO: DllImport error loading library: 'libsrp.so.so: cannot open shared object file: No such file or directory'. Mono-INFO: DllImport loading library: './libsrp.so.so'. Mono-INFO: DllImport error loading library './libsrp.so.so: cannot open shared object file: No such file or directory'. Mono-INFO: DllImport loading: 'libsrp.so'. Mono-INFO: Searching for 'SRP_initialize_library'. Mono-INFO: Probing 'SRP_initialize_library'. Mono-INFO: Probing 'SRP_initialize_library'. Mono-INFO: Probing 'SRP_initialize_libraryA'. Mono-INFO: Probing 'SRP_initialize_libraryA'. Unhandled Exception: System.EntryPointNotFoundException: SRP_initialize_library at (wrapper managed-to-native) Main.Test:SRP_initialize_library () at Main.Test1.Main (System.String[] args) [0x00000] sorry , but really i am not able to get where is the problem .please help me to finding the the problem. thanks

    Read the article

  • Unmanaged DLL in C# Web Service

    - by Telis
    Hi Guys, please help µe as I am new into accessing an unmanaged DLL from C#.. I have a large unmanaged DLL in C++ and I am trying to access the DLL's classes and functions from a C# Web Service. I have seen many examples how to use DLLImport, but for some reason I am stuck with my very first wrapper method spending many hours with no luck.. What should I do to return an object in my 'Marshaled' [DllImport..] function? I would like to do something like that: [DllImport("unmanaged.dll")] public static extern MyClass MyFunction(); Here is the definition of my C++ class and the function that I want to access: class __declspec(dllexport) TPDate { public: TPDate(); TPDate(const TPDate& rhs); ... //today's date. static TPDate AsOfDate(void); ... } In my Web service I have declared the following StructLayout: [StructLayout(LayoutKind.Sequential)] public class TPDate { public TPDate(TPDate d) { _tpDate = d; } public TPDate _tpDate; } and here's where I think that I'm not doing something right: class WrapperTPDate { [DllImport("TPTools.dll", ExactSpelling=false, EntryPoint = "?AsOfDate@TPDate@@SA?AV1@XZ", CallingConvention = CallingConvention.StdCall)] [return: MarshalAs(UnmanagedType.Struct)] **public static extern TPDate AsOfDate();**// HERE THERE IS PROBLEM }; I am calling the wrapper as follows from my WebMethod: [WebMethod] public void ConstructModel() { TPDate date1 = WrapperTPDate.AsOfDate();// Here I get exception TPDate date = new TPDate(date1); } The exception i am getting is: System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Runtime.InteropServices.MarshalDirectiveException: Cannot marshal 'return value': Invalid managed/unmanaged type combination (this type must be paired with LPStruct or Interface). If I change it to LPSTRUCT, I am getting another exception: System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt Could you please tell me where I'm doing wrong here Thanks

    Read the article

  • Dll Import : Unable to find Entry Point "fnMultiply" in DLL "ImportDLL"

    - by user662285
    I am trying to use DLLImport for using Win32 dll method in C#. Win32 dll C++ // .h file #ifdef IMPORTDLL_EXPORTS #define IMPORTDLL_API __declspec(dllexport) #else #define IMPORTDLL_API __declspec(dllimport) #endif // This class is exported from the ImportDLL.dll class IMPORTDLL_API CImportDLL { public: CImportDLL(void); // TODO: add your methods here. int Add(int a , int b); }; extern IMPORTDLL_API int nImportDLL; IMPORTDLL_API int fnImportDLL(void); IMPORTDLL_API int fnMultiply(int a,int b); // .cpp file // ImportDLL.cpp : Defines the exported functions for the DLL application. // #include "stdafx.h" #include "ImportDLL.h" // This is an example of an exported variable IMPORTDLL_API int nImportDLL=0; // This is an example of an exported function. IMPORTDLL_API int fnImportDLL(void) { return 42; } IMPORTDLL_API int fnMultiply(int a , int b) { return (a*b); } Once i build this i get ImportDLL.dll Now i create Windows Application and add this dll in debug folder and try to use this method using DLLImport [DllImport("ImportDLL.dll")] public static extern int fnMultiply(int a, int b); And I try to call this in C# int a = fnMultiply(5, 6); // This line gives error Unable to find an entry point Can any body tell what i am missing? Thanks.

    Read the article

  • Employing elegance in order to evade importing elephants: a case of excessive dll Imports

    - by user994179
    I am writing C# code that interfaces to a legacy (Feb 2012) C program, using DllImport. It works fine, but I need to call more than 30 different functions, turning my normally impeccable, exquisite code into something of near-elephantine proportions. Surely there must be a way around this? [Warning: those with weak stomachs may want to avert their eyes from what follows]: [DllImport("C:\\Users\\mitt\\Documents\\Visual Studio 2010\\Projects\\mrSolution\\mr\\x64\\Debug\\mrDll.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)] public static extern bool mrEngine_initialize( [In, Out, MarshalAs(UnmanagedType.LPStruct)] PLOT_SPEC PlotSpec); [DllImport("C:\\Users\\mitt\\Documents\\Visual Studio 2010\\Projects\\mrSolution\\mr\\x64\\Debug\\mrDll.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)] public static extern bool mrEngine_getDataPoint( [In, Out, MarshalAs(UnmanagedType.LPStruct)] PLOT_SPEC PlotSpec);

    Read the article

  • C# DllImport with c++ const char* not working correctly

    - by Shammah
    I have the following function in a C++ DLL extern "C" __declspec(dllexport) bool Exist(const char* name) { //if (g_Queues.find(name) != g_Queues.end()) // return true; //else // return false; return false; } Inside my C# class I have the following: [DllImport("Whisper.dll", EntryPoint="Exist", CallingConvention=CallingConvention.Cdecl)] public static extern bool Exist(string name); Yet, whenever I call my function it ALWAYS returns true, even when I commented out my little function and made it return false. I have the feeling there is something wrong with my calling convention or any other issue with P/Invoking my DLL, probably corresponding with the string and const char*, but for now I am completely clueless. What am I doing wrong? Why does it return true instead of false? EDIT: I have figured out this has nothing to do with the const char* or string, because the problem persists with an empty function. I've tried changing the calling convention between Cdecl and StdCall and neither work correctly. I've also managed to debug my DLL and it's being called correctly and does indeed return false, but once back into C# it somehow is true. Changing the CharSet also had no effect. I've made sure I've supplied my C# program with the latest and correct version of my DLL each time, so that shouldn't be an issue aswell. Again, I am completely clueless on why the result is true when I'm in fact returning false. EDIT2: SOReader provided me with a suggestion which fixes another important issue, see my comment. Sadly, it does not fix the return issue.

    Read the article

  • ASP.NET 2.0 app runs on Win 2003 in IIS 5 isolation mode but not in (default) IIS 6 mode

    - by Tex
    The app uses DLLImport to call a legacy unmanaged dll. Let's call this dll Unmanaged.dll for the sake of this question. Unmanaged.dll has dependencies on 5 other legacy dll's. All of the legacy dll's are placed in the WebApp/bin/ directory of my ASP.NET application. When IIS is running in 5.0 isolation mode, the app works fine - calls to the legacy dll are processed without error. When IIS is running in the default 6.0 mode, the app is able to initiate the Unmanaged.dll (InitMe()), but dies during a later call to it (ProcessString()). I'm pulling my hair out here. I've moved the unmanaged dll's to various locations, tried all kinds of security settings and searched long and hard for a solution. Help! Sample code: [DllImport("Unmanaged.dll", EntryPoint="initME", CharSet=System.Runtime.InteropServices.CharSet.Ansi, CallingConvention=CallingConvention.Cdecl)] internal static extern int InitME(); //Calls to InitMe work fine - Unmanaged.dll initiates and writes some entries in a dedicated log file [DllImport("Unmanaged.dll", EntryPoint="processString", CharSet=System.Runtime.InteropServices.CharSet.Ansi, CallingConvention=CallingConvention.Cdecl)] internal static extern int ProcessString(string inStream, int inLen, StringBuilder outStream, ref int outLen, int maxLen); //Calls to ProcessString cause the app to crash, without leaving much of a trace that I can find so far

    Read the article

1 2 3 4 5 6 7 8 9 10 11 12  | Next Page >