Running Sqlite on Mono

I am working on ac# project which makes use of an SQLite3 database and needs to be cross compatible between windows and linux. The linux server is using version 3.2.8 and I am using the Managed Sqlite Library DLL 1.0.66.0. I have copied the DLL to the server and when I run mono myexec.exe it displays the following error Unhandled Exception: System.EntryPointNotFoundException: sqlite3_open_v

在Mono上运行Sqlite

我正在开发使用SQLite3数据库的ac#项目,并且需要在Windows和Linux之间交叉兼容。 Linux服务器使用的是3.2.8版,我使用的是Managed Sqlite Library DLL 1.0.66.0。 我已经将DLL复制到服务器,当我运行mono myexec.exe时,它显示以下错误 未处理的异常:System.EntryPointNotFoundException:sqlite3_open_v2 at(wrapper managed-to-native)System.Data.SQLite.UnsafeNativeMethods:sqlite3_open_v2(byte [],intptr&

P/Invoke to dynamically loaded library on Mono

I'm writing a cross-platform .NET library that uses some unmanaged code. In the static constructor of my class, the platform is detected and the appropriate unmanaged library is extracted from an embedded resource and saved to a temp directory, similar to the code given in another stackoverflow answer. So that the library can be found when it isn't in the PATH, I explicitly load it aft

P /在Mono上调用动态加载的库

我正在编写一个使用一些非托管代码的跨平台.NET库。 在我的类的静态构造函数中,检测到平台,并从嵌入资源中提取相应的非托管库,并将其保存到临时目录中,类似于另一个stackoverflow答案中给出的代码。 所以当它不在PATH中时可以找到这个库,我将它保存到临时文件后明确加载它。 在Windows上,这与来自kernel32.dll的LoadLibrary正常工作。 我正在尝试在Linux上对dlopen进行相同的操作,但是在DllNotFoundException加载P /

How to adjust %PATH% for dynamically loaded native dlls?

I'm loading dynamically a .NET assembly that depends on several bunches of native .dlls located in various folders. But Windows finds those DLLs only if their folders are in the PATH environment variable when my application is started. I would like to modify my PATH variable from my program to allow finding the necessary libraries. According to MSDN "the search order is as follows: .

如何调整动态加载的本机DLL的%PATH%?

我动态加载了一个.NET程序集,这个程序集依赖于位于不同文件夹中的几个本地.dll文件。 但是,只有在我的应用程序启动时,它们的文件夹位于PATH环境变量中,Windows才会发现这些DLL。 我想修改我的程序中的PATH变量,以便找到必要的库。 根据MSDN“搜索顺序如下:... PATH环境变量中列出的目录”。 PATH环境变量的哪个实例被使用? 每个进程都有一个实例。 我试过Environment.SetEnvironmentVariable("PATH", .

synchronous animation

I have something this: scaleTransform.BeginAnimation(ScaleTransform.ScaleXProperty, shrinkAnimation); scaleTransform.BeginAnimation(ScaleTransform.ScaleYProperty, shrinkAnimation); MyDialog.Show(); The animations run correctly in parallel (x and y shrink together), but because BeginAnimation is an asynchronous call, the Show() method gets executed while the animation is still running (suppose s

同步动画

我有这样的事情: scaleTransform.BeginAnimation(ScaleTransform.ScaleXProperty, shrinkAnimation); scaleTransform.BeginAnimation(ScaleTransform.ScaleYProperty, shrinkAnimation); MyDialog.Show(); 动画并行运行(x和y一起缩小),但因为BeginAnimation是异步调用,所以Show()方法在动画仍在运行时执行(假设shrinkAnimation运行1秒)。 如何在调用Show()之前等待动画完成? 谢谢! 您可以使用具有完成事件的Sto

Is there any C SQLite API for quoting/escaping the name of a table?

It's impossible to sqlite3_bind_text a table name because sqlite3_prepare_v2 fails to prepare a statement such as: SELECT * FROM ? ; I presume the table name is needed to parse the statement, so the quoting needs to have happened before sqlite3_prepare_v2 . Is there something like a sqlite3_quote_tablename ? Maybe it already exists under a name I can't recognize, but I can't find

有没有用于引用/转义表名称的C SQLite API?

这是不可能的sqlite3_bind_text表名,因为sqlite3_prepare_v2无法准备一个语句,如: SELECT * FROM ? ; 我认为需要表名来解析语句,所以引用需要在sqlite3_prepare_v2之前发生。 有没有像sqlite3_quote_tablename ? 也许它已经存在于我无法识别的名称下,但我在函数列表中找不到任何东西。 你提出的sqlite3_quote_tablename函数可以清理输入以防止sql注入攻击。 要做到这一点,它可以解析输入以确保它是一个字符串文字

How to get the location of the DLL currently executing?

I have a config file that I need to load as part of the execution of a dll I am writing. The problem I am having is that the place I put the dll and config file is not the "current location" when the app is running. For example, I put the dll and xml file here: D:Program FilesMicrosoft Team Foundation Server 2010Application TierWeb ServicesbinPlugins But if I try to reference th

如何获取当前正在执行的DLL的位置?

我有一个配置文件,我需要加载作为执行我写一个DLL的一部分。 我遇到的问题是,当应用程序运行时,我放置dll和配置文件的位置不是“当前位置”。 例如,我把dll和xml文件放在这里: D: Program Files Microsoft Team Foundation Server 2010 Application Tier Web Services bin Plugins 但是,如果我尝试引用xml文件(在我的dll中),像这样: XDocument doc = XDocument.Load(@".AggregatorItems.xml") 那么。 Ag

IIS ASP.NET MVC and dllimport calls lock the file preventing future deployment

So I have a ASP.NET MVC project handling video files uploads, and I used the MediaInfo library (C++) along with the included C# wrapper (using DllImport functions) to determine the video duration. I added the MediaInfo.dll file to my project, and set the "copy to output directory" to always. Everything works perfectly. My problem is that when I rebuild (from Visual Studio) or re-dep

IIS ASP.NET MVC和dllimport调用会锁定该文件,以防未来部署

所以我有一个处理视频文件上传的ASP.NET MVC项目,我使用MediaInfo库(C ++)以及包含的C#包装(使用DllImport函数)来确定视频持续时间。 我将MediaInfo.dll文件添加到我的项目中,并将“复制到输出目录”设置为始终。 一切都很完美。 我的问题是,当我重建(从Visual Studio)或重新部署项目到我的生产环境,它失败,因为文件被锁定。 Unable to copy file "SourcesMediaInfoMediaInfo.dll" to "binMediaInfo.dll". The pro

DllImport is refusing to find my native .dll. Throws DllNotFoundException

I have a project that references a native dll. I added the .dll to the project and set it to 'copy if newer' so it shows up in the output directory. Still every time I try to call an exported function it throws the not found error. I did a little research and read that maybe the .dll couldn't find it's dependencies. I used dependency walker to check and the only dependencies

DllImport拒绝找到我的本地.dll。 引发DllNotFoundException

我有一个引用本地dll的项目。 我将.dll添加到项目中,并将其设置为'如果更新,则复制',以便它显示在输出目录中。 每次我尝试调用导出的函数时,都会抛出未找到的错误。 我做了一些小小的研究,发现可能.dll找不到它的依赖关系。 我使用dependency walker来检查并且列出的唯一依赖项是Kernel32.dll和MSCVR80.DLL。 这两个都是在我的系统中找到的。 我使用了dumpbin.exe并查看了所有导出的函数,因此它似乎是格式

How can I specify a [DllImport] path at runtime?

In fact, I got a C++ (working) DLL that I want to import into my C# project to call it's functions. It does work when I specify the full path to the DLL, like this : string str = "C:\Users\userName\AppData\Local\myLibFolder\myDLL.dll"; [DllImport(str, CallingConvention = CallingConvention.Cdecl)] public static extern int DLLFunction(int Number1, int Number2); The problem is that it's

如何在运行时指定[DllImport]路径?

实际上,我得到了一个C ++(工作)DLL,我想将它导入到我的C#项目中以调用它的函数。 当我指定DLL的完整路径时,它确实有效,如下所示: string str = "C:\Users\userName\AppData\Local\myLibFolder\myDLL.dll"; [DllImport(str, CallingConvention = CallingConvention.Cdecl)] public static extern int DLLFunction(int Number1, int Number2); 问题在于它将会是一个可安装的项目,所以用户的文件夹将不会相同(例如:

ASP.NET Load unmanaged dll from bin folder

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 http://msdn.microsoft.com/en-us/library/ms366723.aspx for details. Now, this makes it necessary to

ASP.NET从bin文件夹加载非托管dll

问题:我在ASP.NET中使用嵌入式Firebird数据库。 现在,Firebird在本地dll上有一个.NET包装器。 问题是,在ASP.NET编译和执行过程中,dll将阴影复制到临时文件夹中。 不幸的是,只有.NET dll,而不是本地dll。 有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/ms366723.aspx。 现在,这使得必须将非托管dll放到system32目录(或路径环境变量中的任何其他目录)中。 现在,我想更改包装器/原生dll(open