Tag: c ++

windows 8 App从App.xaml.cs访问页面方法

可能是一个愚蠢的问题所以我提前道歉。 我是构建Windows 8商店应用程序的新手。 当应用程序被挂起时,我需要在我的页面脚本上运行一些方法。 我只有一个页面,我在Page1.xaml.cs文件中有一些公共方法。 我想从App.xaml.cs文件中的OnSuspending()方法调用它们。 我需要确保保存一些文本文件。 如何创建对Page1脚本的引用?

如何从javascript调用c#按钮单击方法?

我试图从javascript函数调用服务器端按钮单击方法,但它不工作,我可以知道我在哪里做错了吗? aspx代码: Javascript代码: function CountDownTick() { if (_currentSeconds <= 0) { document.getElementById('’).click(); return; } SetCountdownText(_currentSeconds-1); window.setTimeout(“CountDownTick()”, 1000); } C#按钮点击: protected void ButtonFns_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection(“Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\Examination.mdf;Integrated Security=True;User Instance=True”); try { con.Open(); string snm; string Em; string Sx; string uname = Session[“status”].ToString(); string qry = “SELECT SName,Email,Sex FROM Students WHERE […]

如何在Windows Phone 8应用程序中解压缩IsolatedStorage中的文件?

在我的应用程序内,我试图一次下载大约180个小音频文件。 我尝试了BackgroundTransferService,但是对于这么多小文件它似乎并不稳定。 所以,现在我正在下载所有这些音频的ZIP,并希望在“audio”文件夹中提取它们。 我尝试了这个线程中的方法: 如何在Windows Phone 8中解压缩文件 但我收到此错误: ‘System.IO.IOException’ occurred in mscorlib.ni.dll…中’System.IO.IOException’ occurred in mscorlib.ni.dll…在以下代码中。 我怎样才能克服这个问题? while (reader.ReadInt32() != 101010256) { reader.BaseStream.Seek(-5, SeekOrigin.Current); // this line causes error }… 此外,我在哪里需要放置此代码,我在哪里给它目标目录? IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication(); using (IsolatedStorageFileStream fileStream = myIsolatedStorage.OpenFile(@”audio.rar”, FileMode.Open, FileAccess.ReadWrite)) { UnZipper unzip = new UnZipper(fileStream); foreach (string filename in unzip.FileNamesInZip()) { string FileName […]

是否有一个提升lexical_cast相当于C#TryParse?

简介(来自Eric Lippert博客): 不幸的例外是不幸的设计决定的结果。 在完全非特殊情况下抛出exception情况,因此必须始终抓住并处理。 一个令人烦恼的exception的典型例子是Int32.Parse,如果你给它一个无法解析为整数的字符串,它会抛出。 但是这个方法的99%用例是转换用户输入的字符串,这可能是任何旧的东西,因此解析失败绝不是例外。 更糟糕的是,如果没有自己实现整个方法,调用者就无法提前确定他们的参数是否是坏的,在这种情况下,他们不需要首先调用它。 现在重要的部分: 这个不幸的设计决定非常令人烦恼,当然框架团队很快就会实施TryParse,这样做是正确的。 来自MSDN Int32.TryParse: 返回值类型:System.Boolean如果s已成功转换,则为true;否则为false。 否则,是的。 所以同事们正在研究一些需要检查一个字符串是否为数字的代码,所以在考虑它并意识到没有好的C ++解决方案之后(基本上它是for__each / find_if或boost:lexical_cast try catch)我想拥有is_convertible或者来自boost的东西会有多好? 我可以包装boost lexical_cast并在try块结束时返回true并在catch块结束时返回false但我更喜欢现有的做法:)解决方案。

C#中的C ++ const size_t的等价物是什么?

我正在尝试将一些Ogre代码翻译成它的C#版本,我遇到了一个问题: const size_t nVertices = 8; const size_t vbufCount = 3*2*nVertices; float vertices[vbufCount] = { -100.0,100.0,-100.0, //0 position -sqrt13,sqrt13,-sqrt13, //0 normal //… -sqrt13,-sqrt13,sqrt13, //7 normal }; 基本上,const size_t在C#中不存在,而const int不能用于声明数组的大小。 我想知道如何声明具有常量值的数组?

从标记的枚举中获取描述属性

我正在尝试创建一个扩展方法,该方法将返回一个List其中仅包含给定[Flags] Enum的设置值的所有Description属性。 例如,假设我在C#代码中声明了以下枚举: [Flags] public enum Result { [Description(“Value 1 with spaces”)] Value1 = 1, [Description(“Value 2 with spaces”)] Value2 = 2, [Description(“Value 3 with spaces”)] Value3 = 4, [Description(“Value 4 with spaces”)] Value4 = 8 } 然后将变量设置为: Result y = Result.Value1 | Result.Value2 | Result.Value4; 所以,我想要创建的调用将是: List descriptions = y.GetDescriptions(); 最终结果将是: descriptions = { […]

从C#调用C ++函数 – 不平衡堆栈

我有一个带有以下签名的非托管C ++函数: int function(char* param, int ret) 我试图用C#调用它: unsafe delegate int MyFunc(char* param, int ret); … int Module = LoadLibrary(“fullpathToUnamanagedDll”); IntPtr pProc = GetProcAddress(Module, “functionName”); MyFunc func = (MyFunc)System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointer(pProc, typeof(MyFunc)); unsafe { char* param = null; int ret = 0; int result = func(param, ret); } 据我所知,从旧的C ++项目规范中, param为null, ret为0都是函数的有效输入。 当我尝试调用它似乎工作,但退出时我得到以下错误: 检测到PInvokeStackImbalance 对PInvoke函数’… :: Invoke’的调用使堆栈失衡。 […]

为什么Bind和OneWayBind始终不使用主UI线程?

在我的ViewModel我经常会ViewModel如下代码: public bool IsDownloading { get { return _isDownloading.Value; } } private ObservableAsPropertyHelper _isDownloading; … FileDownloader.WhenAny(x => x.IsDownloading, x => x.Value) .ToProperty(this, x => x.IsDownloading, out _isDownloading, false, RxApp.MainThreadScheduler); 注意最后一个RxApp.MainThreadScheduler参数 – 确保对IsDownloading属性的所有更新都发生在主UI线程上。 原因在于可能订阅它的原因。 例如,在我看来xaml我可能有以下代码: this.OneWayBind(ViewModel, x => x.IsDownloading, y => y.DownloadProgress.IsActive); 在这里,您会看到IsDownloading将被路由到控件上的IsActive项 – 因此任何更新都必须在UI线程上进行。 所以这一切都有效。 但我不明白为什么ReactiveUI是这样设计的。 看起来对于视图而不是VM来说,更新发生在UI线程上是很重要的,所以Bind或OneWayBind不应该确保它在正确的线程上吗? 事实上,如果你看一下这些例程的XML文档,他们会讨论将事物附加到View的,所以暗示它应该总是在主线程上。 那么:为什么OneWayBind和Bind不会隐式强制使用MainThread ? 我是否错过了ReactiveUI如何工作(或可以工作)?

在C#WebForm上反序列化动态JSON数组

嗨,我正在我的API上生成一个JSON,我试图在我的Web应用程序中使用代码隐藏C#,但我无法反序列化。 我的JSON有一个带有JSON数组的对象,数组中的元素是动态的,所以我不能用这些项创建一个固定的类,因为我的JSON可以有N个项目。 { “MAINOBJET”: [{ “ITEM1”: “23800”, “ITEM2”: “Dahl; Police”, “ITEM3”: “test@test.net” }, { “ITEM1”: “23802”, “ITEM2”: “Steve ; Police”, “ITEM3”: “test2@test.net” }] } 那么如何将其反序列化为DataTable,列表或字典呢? 谢谢

从另一个AppDomain程序集复制方法并从CurrentDomain执行它

在大图中,我试图从主域中的dll执行方法,但之后,卸载该DLL。 到目前为止我已经创建了新的AppDomain加载了Assembly \ MaxStackSize ,使用MarshalByRefObject我将该方法的主体和MaxStackSize获取到主域,在那里创建DynamicMethod ,重新创建其中的主体并调用它。 但是当我调用它时,我得到exception: System.BadImageFormatException: Signature is not IMAGE_CEE_CS_CALLCONV_LOCAL_SIG 。 获取并调用它的代码: DynamicMethod method = new DynamicMethod( “func”, typeof( void ), new Type[ 0 ] ); var info = method.GetDynamicILInfo( ); info.SetCode( marshal.GetILCode( ), marshal.GetMaxStackSize()); info.SetLocalSignature( SignatureHelper.GetMethodSigHelper( CallingConventions.Standard, typeof( void ) ).GetSignature( ) ); method.Invoke( null, new object[ 0 ] ); //<– exception […]