首页 文章
  • 0 votes
     answers
     views

    如何使用P / Invoke从提升的信任silverlight应用程序将writeablebitmap复制到剪贴板?

    我有一个在浏览器中运行提升信任的silverlight 5应用程序 . 这允许我们做一些通常在Silverlight中无法实现的事情,比如通过P / Invoke更多地访问剪贴板 . 我需要做的是将控件复制到剪贴板,以便将它们粘贴到Word或Outlook中 . 我可以通过WriteableBitmap将控件转换为图像,但是将数据复制到剪贴板是我遇到的问题 . 来电代码: WriteableBit...
  • 185 votes
     answers
     views

    在WPF中为窗口打开一个窗口

    如何将我的WPF应用程序带到桌面的前端?到目前为止,我已经尝试过: SwitchToThisWindow(new WindowInteropHelper(Application.Current.MainWindow).Handle, true); SetWindowPos(new WindowInteropHelper(Application.Current.MainWindow).Handle...
  • 5 votes
     answers
     views

    Delphi DLL从C#返回字符串... .NET 4.5 Heap Corruption但.NET 4.0有效吗?请解释?

    我一直在学习将非托管DLL导入编组到C#中...而且我遇到了一些我不太了解的东西 . 在Delphi中,有一个函数从 Procedure SomeFunc() : PChar; Stdcall; 返回 Result := NewStr(PChar(somestring)) 根据我的理解,NewStr只在本地堆上分配一个缓冲区...而SomeFunc正在返回一个指向它的指针 . 在.NET 4.0(...
  • 1 votes
     answers
     views

    来自c#的PInvoke Nikon c DLL函数

    我正在尝试访问尼康图像SDK(对于那些感兴趣的人:1)来实现对程序中* .nef文件的访问 . 我迟迟没想到了 . 是的我知道有一个机会,有人正在使用这个dll是稀疏的,但我宁愿寻找“写作”/“思考”错误......我还在学习(这是任何错误使用的术语等的借口等等 . ..)也因为这个原因这是一个“更长”的帖子(一些“大声思考”在我身边;-)) 1.)dll有一个入口函数,您可以将标识符和结构作为...
  • 2 votes
     answers
     views

    在CUDA DLL上的C#P / Invoke最终导致AccessViolationException

    这真让我抓狂 . 我看了一遍,但我不确定我究竟究竟是什么导致了这个错误 . 我正在调用一个DLL(我编写为一个单独的项目),它在我正在使用的一些数据上运行CUDA内核 . 虽然,我怀疑这个问题不是由CUDA造成的,因为代码已经过测试并至少运行一次,通常是64到100次,然后才会导致AccessViolationException . 问题是,我传递了三个公共静态数组: public static ...
  • 3 votes
     answers
     views

    Interop C#/ C问题:AccessViolationException

    并感谢任何帮助的建议 . 我在C中有这个简单的功能: __declspec(dllexport) Point* createPoint (int x, int y) { Point *p; p = (Point*) malloc(sizeof(Point)); p->x = x; p->y=y; return p; } P...
  • 0 votes
     answers
     views

    P / Invoke AccessViolationException

    当我尝试将路径传递给文件名时,我有一个非托管函数调用抛出此异常 . 我已经读过这可能是由DLL本身引起的,但我不认为是这种情况,因为DLL在另一个应用程序中使用,所以问题很可能在我调用该函数的方法中 . 规格: libvlc_media_new_path (libvlc_instance_t *p_instance, const char *path) 描述: p_instance the i...
  • 0 votes
     answers
     views

    使用P / Invoke导致系统AccessViolationException [重复]

    这个问题在这里已有答案: std::string in C#? 5个答案 我在使用P / Invoke从C#代码中使用C函数时遇到问题 . 我已经使用http://www.codeproject.com/Articles/403285/P-Invoke-Tutorial-Basics-Part上的教程作为一个基本的例子,一旦我开始工作,我就根据自己的代码进行了调整 . 这产生了一个System...
  • 3 votes
     answers
     views

    需要激活一个窗口

    我有这种情况 . 我有一个应用程序的窗口句柄 . 我需要激活它 . 我尝试了所有这些功能,但总是没有工作 . (大多数时候,它不会在第一次工作,我将不得不手动点击它来激活它 . 第二次尝试以后它工作正常)我之所以如此我这样做是因为我有代码写在Form.Activate事件的形式,我需要执行 . 应用程序是单实例应用程序 . 创建新实例时,它首先检查是否存在任何其他进程,如果找到,则将旧进程的句柄传...
  • 1 votes
     answers
     views

    64位的DllImport PathCanonicalize会导致内存损坏

    我试图在64位.NET程序集上使用DllImport(PInvoke)函数PathCanonicalize,它会导致内存损坏导致各种不良行为(崩溃,异常情况等等) . (例如:System.AccessViolationException:尝试读取或写入受保护的内存 . 这通常表示其他内存已损坏 . ) [DllImport("shlwapi", CharSet = Char...
  • 0 votes
     answers
     views

    为什么在使用struct而不是class时会出现AccessViolationException

    当我将 struct 传递给某个 PInvoke 方法时,我会收到错误 未处理的异常:System.AccessViolationException:尝试读取或写入受保护的内存 . 这通常表明其他内存已损坏 . 当我使用课程时,就可以了 . 我想知道背后的原因吗?
  • 2 votes
     answers
     views

    使用p / invoke从C#到C代码编组一个字符串数组

    我需要将C#字符串数组传递给C代码 示例C代码 void print_string_array(const char** str_array, int length){ for (int i = 0; i < length; ++i) { printf("Sting[%l] = %s\n", i, str_array[i]); } } 我...
  • 3 votes
     answers
     views

    从C#调用C函数时出现访问冲突异常

    我有以下C函数(属于一个COM接口,派生自IUnknown),我想从C#代码调用: C声明如下: HRESULT Function1([in] STRUCT1 *s1, [in, out] STRUCT2 *s2, [in] SIZE_T var1); 工作C程序中的声明: STDMETHOD(Function1)( THIS_ __out STRUCT1 * s1, _...
  • 3 votes
     answers
     views

    在.NET平台调用中使用不安全的struct *作为opaque类型而不是IntPtr是否有效?

    .NET Platform Invoke主张将指针类型声明为IntPtr . 例如,以下内容 [DllImport("mylib")] static extern IntPtr get_foo(); [DllImport("mylib")] static extern void do_something_foo(IntPtr foo); 但是,我发现当与...
  • 88 votes
     answers
     views

    无法加载DLL(无法找到模块HRESULT:0x8007007E)

    我有我需要在我的.NET 4.0应用程序中使用的非托管C API代码的DLL库 . 但我尝试加载我的DLL的每个方法都会出错: 无法加载DLL“MyOwn.dll”:找不到指定的模块 . (HRESULT异常:0x8007007E) 我已经阅读并尝试了我在互联网上找到的severa解决方案 . 什么都行不通.. 我尝试过使用以下方法: [DllImport("MyOwn.dll&q...
  • 157 votes
     answers
     views

    UI自动化的Google Chrome访问树缓存问题

    当用户在浏览器中向下滚动时,Google Chrome不会刷新辅助功能元素(AutomationElement) . 重现它: 使用以下内容启用渲染器辅助功能: "chrome --force-render-accessibility" 或在 "chrome://accessibility" 上设置Global Accessibility . 转到h...
  • 3 votes
     answers
     views

    使用Delphi DLL和C#中的动态数组

    我有一个包含以下类型的Delphi DLL: type TStepModeType = (smSingle, smMultiStep); TParameter = record Number: Integer; end; TStruct = record ModType: PAnsiChar; ModTypeRev: Integer; ModTy...
  • 1 votes
     answers
     views

    用c#重写Delphi DLL调用

    我想用C#编写DMX Lightcontrol软件 . 我的问题是我要重写从Delphi到C#的DLL调用 . 以下代码显示了我的尝试: //德尔福代码: function GetDMXInterface: pchar; stdcall; external 'DMX510.dll'; function SetLevel(a: array of byte): boolean; stdcall; ex...
  • 8 votes
     answers
     views

    如何在c#(解组返回结构)中调用此c函数?

    我想用c#interop从用c编写的dll中调用一个函数 . 我有头文件 . 看看这个: enum CTMBeginTransactionError { CTM_BEGIN_TRX_SUCCESS = 0, CTM_BEGIN_TRX_ERROR_ALREADY_IN_PROGRESS, CTM_BEGIN_TRX_ERROR_NOT_CONNECTED }; #prag...
  • 429 votes
     answers
     views

    “即使平台相同,也试图加载格式不正确的程序”

    我在64位系统上调用32位非托管DLL的函数 . 我得到的是: BadImageFormatException:尝试加载格式不正确的程序 . (HRESULT异常:0x8007000B) 起初,我将我的项目设置为Any CPU平台,因此我将它们都更改为x86,但此错误仍在发生 . 这真的是我所知道的唯一解决方案 . 这些DLL不具备源代码 . 我想也许那不是全部 . 另外,在这种情况下不会抛...
  • 0 votes
     answers
     views

    C#Marshal / Pinvoke CBitmap?

    我无法弄清楚如何将C CBitmap编组为C#Bitmap或Image类 . 我的导入如下: [DllImport(@“test.dll”,CharSet = CharSet.Unicode)] public static extern IntPtr GetBitmap(System.IntPtr hwnd,int nBMPWIDTH,int nBMPHEIGHT); H文件部分如下所示: Cbi...
  • 2 votes
     answers
     views

    问题是获取C#P / Invoke调用C dll的正确参数

    尝试从Oracle的Outside In API中交叉功能 . 具有以下功能: SCCERR EXOpenExport {VTHDOC hDoc, VTDWORD dwOutputId, VTDWORD dwSpecType, VTLPVOID pSpec, VTDWORD dwFlags, VTSYSPARAM dwReserved, VTLPVOID pCallbackFunc, VTSY...
  • 0 votes
     answers
     views

    P / Invoke AccessViolationException毫无意义

    首先,很抱歉发布这样的问题,当有很多其他人被问到这个话题时,但我一直在阅读我能找到的所有问题(谷歌),没有人真正给我任何关于什么是什么的提示发生在我的情况下 . 我有一个第三方.dll(libFLAC),带有两个名字相似的导出函数: FLAC__StreamEncoderInitStatus FLAC__stream_encoder_init_file (FLAC__StreamEncoder *...
  • 9 votes
     answers
     views

    来自user32.dll的FindWindowEx使用dllimport返回零句柄和错误代码127

    我需要以编程方式处理另一个Windows应用程序,搜索谷歌我找到了一个使用DLLImport属性处理Windows计算器的示例,并在C#中将user32.dll函数导入托管应用程序 . 应用程序正在运行,我正在获取主窗口的句柄,即计算器本身,但后续代码不起作用 . FindWindowEx方法不返回计算器子项的句柄,如按钮和文本框 . 我尝试在DLLImport上使用SetLastError =...
  • 1 votes
     answers
     views

    EnumWindows lParam参数从32位调用到目标64位进程

    我正在编写一个自定义函数来枚举子窗口并返回一个窗口句柄列表 . 这是根据P / Invoke声明的函数 . [System.Runtime.InteropServices.DllImport("user32.Dll")] public static extern bool EnumWindows (EnumWindowsCallback lpEnumCallbackFunc, ...
  • 0 votes
     answers
     views

    编组访问违规

    正确的函数声明是: [DllImport("user32.dll")] static extern int SetScrollInfo (IntPtr hwnd, int n, ref SCROLLINFO lpcScrollInfo, bool b); 我声明它是这样的: [DllImport("user32.dll", CharSet = CharSe...
  • 0 votes
     answers
     views

    我是否需要一个包装类来从user32.dll调用/调用一些函数

    所以我正在开发一个c#Windows Form应用程序,我的部分代码使用user32.dll中的一些方法 . 在下面列出它们 . public static extern IntPtr SendMessage(IntPtr hWnd,UInt32 Msg,IntPtr wParam,IntPtr lParam); public static extern bool ReleaseCaptu...
  • 1 votes
     answers
     views

    C#Dllimport Delphi指针

    我是编程新手,有人可以帮我调用delphi dll中的指针函数到Visual C#函数 . 这是存储在DLL中的Delphi函数 . // Delphi代码存储在DLL中 function DeviceName(Size : Integer; Msg : Pointer) : Integer stdcall; var i: Integer; TempByte : PByte; Tem...
  • 11 votes
     answers
     views

    通过P / Invoke调用GetGUIThreadInfo

    我想将键盘输入发送到另一个进程中的窗口,而不将该窗口带到前台 . 我可以用 PostMessage 伪造 WM_KEYDOWN 和 WM_KEYUP ;我需要知道的是哪个窗口句柄应该接收键盘输入 - 即类似于GetFocus,但是对于另一个非活动应用程序 . GetGUIThreadInfo API看起来很有前途 - 它为另一个应用返回 hwndFocus . 但我've had no luck...

热门问题