我只是按照说明进行操作
SQLite的-ON-视觉工作室与 - 的NuGet-和易于说明
我能够编译样本C#appliation
"任何cpu"
选项.
但是当我运行应用程序时,如果我选择的话
"喜欢32位"
选项,我的应用程序崩溃:
"无法加载DLL"SQLite.Interop.dll"
如果我取消选中"prefer 32 bit"选项,它在我的64位机器上工作正常.
为什么会这样?有任何修复建议吗?
PS:我使用64位Windows 8.我为SQLite提供了[x86]和[x64]文件夹.
PS 1: 错误:
System.TypeInitializationException:'System.Data.SQLite.SQLiteFactory'的类型初始值设定项引发异常.---> System.DllNotFoundException:无法加载DLL'SQLite.Interop.dll':找不到指定的模块.(从HRESULT异常:0x8007007E)在System.Data.SQLite.UnsafeNativeMethods.sqlite3_config_none(SQLiteConfigOpsEnum OP)在System.Data.SQLite.SQLite3.StaticIsInitialized()在System.Data.SQLite.SQLiteLog.Initialize()在System.Data. SQLite.SQLiteFactory..cctor()---内部异常堆栈跟踪结束---在System.Data.SQLite.SQLiteFactory..ctor()
PS 3:
我注意到一件有趣的事情.虽然在视觉工作室它崩溃,当我运行我的程序exe,只需单击它,它的工作原理.
我尝试使用C#编写的第三方软件的试用版.当我尝试使用它的API时,我遇到了一个奇怪的问题.
我正在使用visual studio 2015,我在他们的API-SDK中发现了一个有趣的扩展方法签名
public static class CallExtendedInfoEx
{
public static void AddToSIPMessage(this CallExtendedInfo info, msg);
}
Run Code Online (Sandbox Code Playgroud)
第二个参数类型不存在.以前在C#中没见过.我尝试将通用的Object参数作为第二个参数,并且C#Compiler给出了一个奇怪的错误
严重性代码描述项目文件行
错误CS1503参数2:无法从'object'转换为'.'
它使用"null"...没有编译器错误或运行时错误[忽略我认为]
那些人怎么能用C#编写这样的代码?它可以吗?任何的想法?
注意:我怀疑代码存在问题...但我仍然不明白这里发生了什么
IL_0073: call void [CallExtendedInfoEx::AddToSIPMessage(class [VoIP.CallExtendedInfo,
class [VoIPSDK]''.'')
Run Code Online (Sandbox Code Playgroud) 我有一个 RestSharp 客户端和 Nancy Self Host Server。我想要的是
从客户端发送多部分表单数据并从服务器轻松解析该数据:
从 RestSharp 客户端发送二进制文件和 Json 数据作为多部分表单数据,并能够从 Nancy 服务器获取二进制文件和 Json 对象
在使用 Restsharp 的客户端:[ http://restsharp.org/ ] 我尝试发送“multipart/form-data”请求,其中包含一个二进制文件和一些 json 格式的元数据:
var client = new RestClient();
...
IRestRequest restRequest = new RestRequest("AcmeUrl", Method.POST);
restRequest.AlwaysMultipartFormData = true;
restRequest.RequestFormat = DataFormat.Json;
// I just add File To Request
restRequest.AddFile("AudioData", File.ReadAllBytes("filePath"), "AudioData");
// Then Add Json Object
MyObject myObject = new MyObject();
myObject.Attribute ="SomeAttribute";
....
restRequest.AddBody(myObject);
client.Execute<MyResponse>(request);
Run Code Online (Sandbox Code Playgroud)
在使用 Nancy[ http://nancyfx.org/ ] 的服务器上,尝试获取文件和 Json 对象 [元数据]
// …Run Code Online (Sandbox Code Playgroud) 假设我的磁盘上有一个 wav 音频,称之为 MyDummy.wav。我想将它作为 RTP 数据包发送到服务器。但是正如我所看到的,RTP 数据包发送一些时间问题,比如 20 毫秒等等......以及我将如何确定 RTP 数据包的大小......我真的不知道如何做很多事情,而且所有事情都是必要的?
任何人都可以作为伪代码告诉如何将音频文件打包为 RTP 数据包,以及我应该在什么时间发送音频或提供任何我可以调查的示例代码?
我有raw-headerless wav音频数据作为MemoryStreams.
Stream rawAudioStream = Producer.GetRawAudioFileStream(...);
Run Code Online (Sandbox Code Playgroud)
我知道那些流数据格式:
// WaveFormat(int rate, int bits, int channels);
WaveFormat waveformat = new WaveFormat(8000, 16, 1);
Run Code Online (Sandbox Code Playgroud)
我想要的是以编程方式为这些内存流添加正确的头信息,而无需将它们写入物理文件.
我怎样才能做到这一点?
PS:我检查了NAudio库,但只找到了一种通过将流写入真实物理文件来创建标头的方法,这种方式不适合我的情况.
var waveformat = new WaveFormat(8000,16,1);
var reader = new RawSourceWaveStream(rawAudioMemStream, waveformat);
using (var convertedStream = WaveFormatConversionStream.CreatePcmStream(reader))
{
WaveFileWriter.CreateWaveFile(fileName, convertedStream);
}
rawAudioMemStream.Close();
Run Code Online (Sandbox Code Playgroud) 这是我的情况:
MsiPackage标记的Setup项目.从Bootstrapper项目启动安装项目对我来说似乎很奇怪.相反,我更喜欢从安装项目启动先决条件检查和安装(可能从安装项目调用bootstrapper项目).
所以这是我的问题:
假设我的 WAV 文件包含 16 位 PCM,我如何将 wav 文件读取为双数组:
using (WaveFileReader reader = new WaveFileReader("myfile.wav"))
{
Assert.AreEqual(16, reader.WaveFormat.BitsPerSample, "Only works with 16 bit audio");
byte[] bytesBuffer = new byte[reader.Length];
int read = reader.Read(bytesBuffer, 0, buffer.Length);
// HOW TO GET AS double ARRAY
}
Run Code Online (Sandbox Code Playgroud) 下面是一个POST请求完成标准HttpWebRequest和HttpWebResponse.基本上它发布了带有一些参数的binanry文件.
如何使用RestSharp做同样的事情?
资源:
https://github.com/attdevsupport/ATT_APIPlatform_SampleApps/tree/master/RESTFul/SpeechCustom,ATT_APIPlatform_SampleApps/RESTFul/Speech/Csharp/app1 /]
HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(string.Empty+parEndPoint );
httpRequest.Headers.Add("Authorization", "Bearer " + parAccessToken);
httpRequest.Headers.Add("X-SpeechContext", parXspeechContext);
if (!string.IsNullOrEmpty(parXArgs))
{
httpRequest.Headers.Add("X-Arg", parXArgs);
}
string contentType = this.MapContentTypeFromExtension(Path.GetExtension(parSpeechFilePath));
httpRequest.ContentLength = binaryData.Length;
httpRequest.ContentType = contentType;
httpRequest.Accept = "application/json";
httpRequest.Method = "POST";
httpRequest.KeepAlive = true;
httpRequest.SendChunked = parChunked;
postStream = httpRequest.GetRequestStream();
postStream.Write(binaryData, 0, binaryData.Length);
postStream.Close();
HttpWebResponse speechResponse = (HttpWebResponse)httpRequest.GetResponse();
Run Code Online (Sandbox Code Playgroud)