问题列表 - 第45134页

如何使C++程序跨编译器工作

我想知道如何让我的C++程序在编译器之间工作.我想让程序如此,如果它是用borland编译的,它将使用该clrscr()函数,否则它将使用system("CLS").我已经看到代码已经做了类似的事情,但我无法找到它的功能或工作方式的解释.任何帮助,将不胜感激.

c++ visual-c++ borland-c++

1
推荐指数
1
解决办法
1360
查看次数

我可以在.NET 4中序列化ExpandoObject吗?

我正在尝试使用,System.Dynamic.ExpandoObject所以我可以在运行时动态创建属性.稍后,我需要传递此对象的实例,并且使用的机制需要序列化.

当然,当我尝试序列化我的动态对象时,我得到了异常:

System.Runtime.Serialization.SerializationException未处理.

在Assembly'System.Core中输入'System.Dynamic.ExpandoObject',Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'未标记为可序列化.

我可以序列化ExpandoObject吗?是否有另一种方法来创建可序列化的动态对象?也许使用DynamicObject包装器?

我创建了一个非常简单的Windows窗体示例来复制错误:

using System;
using System.Windows.Forms;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Dynamic;

namespace DynamicTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {            
            dynamic dynamicContext = new ExpandoObject();
            dynamicContext.Greeting = "Hello";

            IFormatter formatter = new BinaryFormatter();
            Stream stream = new FileStream("MyFile.bin", FileMode.Create,
                                           FileAccess.Write, FileShare.None);
            formatter.Serialize(stream, dynamicContext);
            stream.Close();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# serialization dynamic expandoobject

27
推荐指数
3
解决办法
2万
查看次数

Django - 获取上传的文件类型/ mimetype

有没有办法在覆盖模型保存方法时获取上传文件的内容类型?我试过这个:

def save(self):
    print(self.file.content_type)
    super(Media, self).save()
Run Code Online (Sandbox Code Playgroud)

但它没有用.在此示例中,self.file是model.FileField:

file = models.FileField(upload_to='uploads/%m-%Y/')
Run Code Online (Sandbox Code Playgroud)

编辑:我希望能够将内容类型保存到数据库,所以在保存实际完成之前我需要它:)

django

16
推荐指数
3
解决办法
3万
查看次数

如何在R中最好地创建定时器功能

我正在尝试在R中创建一个函数,它返回函数调用1之后的前x秒,下一个x秒0,再次下一个x秒1,...整个过程应该在另一个时间间隔后或之后停止n次迭代.我想用一个函数调用来做这个.

我读到了包tcltk,这显然需要一些创建这种"计时器"功能的可能性,但是我找不到足够的解释来解决我的问题.

你能告诉我在哪里可以找到一个好的手册,用R解释tcl吗?您是否有其他想法如何以有效的方式创建这样的功能?

非常感谢你的帮助.

algorithm r tcl timer

5
推荐指数
3
解决办法
4038
查看次数

如何扩展编译器生成的复制构造函数

我经常遇到问题,我必须扩展编译器生成的复制构造函数.例:

class xyz;
class C
{
    ...
    int a, b, c; 
    std::set<int> mySet;
    xyz *some_private_ptr;
};
Run Code Online (Sandbox Code Playgroud)

假设,some_private_ptr只应在特定条件下复制.对于其他条件,应将其重置为NULL复制.所以我必须编写一个复制构造函数,如:

C::C(const C &other) : 
     a(other.a), 
     b(other.b), 
     c(other.c), 
    mySet(other.mySet)
{      
   if(CanCopy(other.some_private_ptr)) // matches condition
      some_private_ptr = other.some_private_ptr;
   else
      some_private_ptr = NULL;
}
Run Code Online (Sandbox Code Playgroud)

问题是该类可能有许多数据成员,并且当我添加数据成员时,我很可能忘记更新复制构造函数.如果我能写的话,那将是非常好的.

C::C(const C &other) :
   C::default_copy(other)
{      
   if(CanCopy(other.some_private_ptr)) // matches condition
      some_private_ptr = other.some_private_ptr;
   else
      some_private_ptr = NULL;
}
Run Code Online (Sandbox Code Playgroud)

这将使我的代码更安全,更容易维护.不幸的是我不知道这种可能性.有没有?

c++ copy-constructor

18
推荐指数
3
解决办法
1675
查看次数

加载图像时内存不足异常

我使用以下代码将图像作为缩略图加载到FlowLayoutPanel控件.不幸的是我得到了OutOfMemory异常.

正如您已经猜到的那样,内存泄漏是在线上找到的

 Pedit.Image = System.Drawing.Image.FromStream(fs)
Run Code Online (Sandbox Code Playgroud)

那我怎么能优化下面的代码呢?

 Private Sub LoadImagesCommon(ByVal FlowPanel As FlowLayoutPanel, ByVal fi As FileInfo)
        Pedit = New DevExpress.XtraEditors.PictureEdit
        Pedit.Width = txtIconsWidth.EditValue
        Pedit.Height = Pedit.Width / (4 / 3)
        Dim fs As System.IO.FileStream
        fs = New System.IO.FileStream(fi.FullName, IO.FileMode.Open, IO.FileAccess.Read)
        Pedit.Image = System.Drawing.Image.FromStream(fs)
        fs.Close()
        fs.Dispose()
        Pedit.Properties.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Zoom

        If FlowPanel Is flowR Then
            AddHandler Pedit.MouseClick, AddressOf Pedit_MouseClick
            AddHandler Pedit.MouseEnter, AddressOf Pedit_MouseEnter
            AddHandler Pedit.MouseLeave, AddressOf Pedit_MouseLeave
        End If

        FlowPanel.Controls.Add(Pedit)
    End Sub
Run Code Online (Sandbox Code Playgroud)

更新:加载大量图像时出现问题(3264x2448px为300dpi - 每个图像大约为3Mb)

vb.net memory-leaks memory-management image image-processing

3
推荐指数
1
解决办法
1万
查看次数

与广播接收者一起收到的Android NFC标签

我试图在广播接收器中捕获NFC标签,所以我写了一个简单的BR,在onReceive()中打印"asd".在清单xml中,它被描述为:

我只收到这个,根本没有印刷品....

01-31 16:37:18.980: ERROR/MediaPlayer(990): setAudioStream called in state 8
01-31 16:37:18.980: ERROR/MediaPlayer(990): error (-38, 0)
01-31 16:37:18.980: ERROR/MediaPlayer(990): start called in state 0
01-31 16:37:18.980: ERROR/MediaPlayer(990): error (-38, 0)
01-31 16:37:18.988: ERROR/MediaPlayer(990): Error (-38,0)
Run Code Online (Sandbox Code Playgroud)

当我使用activity来处理这样的意图时:

<activity android:name="TagViewer"
            android:theme="@android:style/Theme.NoTitleBar">
            <intent-filter>
                <action android:name="android.nfc.action.TAG_DISCOVERED"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

活动已启动且运行正常,那么如何使其与BroadcastReceiver一起使用?

android nfc broadcastreceiver

7
推荐指数
2
解决办法
8830
查看次数

在linux中使用C进行广播后获取IP地址

我在Linux下用C编写了一个简单的客户端服务器程序.我创建了UDP套接字.客户端使用广播消息

sendto(clientsock, buf, 100, 0, (struct sockaddr *)&to, sizeof (to)); 
Run Code Online (Sandbox Code Playgroud)

服务器使用接收广播的消息

recvfrom(serversock, buf, 100, 0, (struct sockaddr *)&rcv,&size);
Run Code Online (Sandbox Code Playgroud)

服务器正在成功接收消息.在服务器端,我需要找到收到的消息的源IP地址.我怎样才能做到这一点 ?

c linux networking gcc

2
推荐指数
1
解决办法
378
查看次数

如何将标志传递给LLVM传递?

我正在实现一个LLVM传递,并希望通过命令行打开或关闭一些选项,特别是我想为我的传递使用-v详细模式.

我找不到传递任何文档中提到的命令行标志的机制,是否存在?

llvm

9
推荐指数
3
解决办法
2729
查看次数

如何从类路径加载Android ImageView的图像?

我有一个Android应用程序,其中包含一个外部dependend jar库.这个外部库包含一些png位图,我想在我的应用程序中的某些ImageView上显示它们.

查看我的应用程序的apk文件,我可以按预期在子目录("aq\img")中找到图像.

在ImageView上显示图像(洞察类路径)的最佳方法是什么.

我试过这个

    ImageView imgView01 = (ImageView) findViewById(R.id.imageView1);
    Drawable d = Drawable.createFromPath("aq/img/sample.png");
    imgView01.setImageDrawable(d);
Run Code Online (Sandbox Code Playgroud)

还有这个

    InputStream is = ClassLoader
            .getSystemResourceAsStream("sample.png");
    Bitmap bm = BitmapFactory.decodeStream(is);
    imgView01.setImageBitmap(bm);
Run Code Online (Sandbox Code Playgroud)

但它不起作用(我真的不希望它那么简单).图像仍然是空的.

感谢帮助!

关心克劳斯

android

6
推荐指数
1
解决办法
7133
查看次数