小编Les*_*Les的帖子

Visual Studio 2010 - LINK:致命错误LNK1181:无法打开输入文件"■/ .obj"

我在Windows 7上安装了VS 2010.我创建了一个新项目,选择了c ++语言,Win32项目,DLL,导出符号,然后完成.现在当我编译项目时没有对VS生成的任何更改,我得到......

链接:致命错误LNK1181:无法打开输入文件"■/ .obj"

我也在同一台机器上安装了VS 2008.我按照相同的步骤进行编译.我究竟做错了什么?

编辑 好的,我发现这个错误是由于使用了旧版本的链接器.我不知道为什么.在VS2010中,项目目录的设置与VS2008中的设置不同.一旦我明白了,也许我可以解决自己的问题.

c++ visual-studio-2010

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

转发声明constexpr变量模板

我试图constexpr像这样向前声明一个变量模板:

template<typename>
constexpr std::size_t iterator_category_value;
Run Code Online (Sandbox Code Playgroud)

我们的目标是记录每一项专业都应该是,constexpr但我必须承认,我从未检查过它是否合法,而且g ++对它很满意.但是,当我尝试使用clang ++编译此spinnet时,我收到以下错误:

error: default initialization of an object of const type 'const std::size_t' (aka 'const unsigned long')
    constexpr std::size_t iterator_category_value;
                          ^
                                                  = 0
Run Code Online (Sandbox Code Playgroud)

错误是有道理的,删除constexpr使它消失,所以这不是一个真正的问题.但是,我现在很好奇:标准是否允许constexpr对变量模板进行此类前向声明,还是非法?g ++和clang ++似乎不同意,我想知道如果需要我应该在哪里提交错误报告.

他们都抱怨一个前向声明的constepxr变量,它不是一个变量模板,所以变量模板上下文似乎是编译器不同意的原因.

c++ language-lawyer constexpr variable-templates c++14

10
推荐指数
2
解决办法
722
查看次数

如何在C#中解决错误"反射调用中不支持ByRef返回值"?

我有一个由第三方提供的.Net库.我对其中一个类进行了反射,并找到了一个成员方法.签名是......

Byte& FooBar()
Run Code Online (Sandbox Code Playgroud)

所以,我想通过反射调用这个方法并获得异常"反射调用中不支持ByRef返回值".

这是我试过的......

        var strm = new TheirClass();
        var t = strm.GetType();
        var ms = t.GetMembers(
                    BindingFlags.Static|BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
        foreach (var m in ms)
        {
            Debug.WriteLine(String.Format("Name: {0}: {1}", m.Name, m.ToString()));
            // ...
            // Name: FooBar:  Byte& FooBar()
            // ...
        }
        var meth = t.GetMethod("FooBar");
        object returnValue = meth.Invoke(strm, new object[] {  });  //throw exception
Run Code Online (Sandbox Code Playgroud)

我已经尝试提供参数,如使用ref参数调用函数,但这没有任何区别.

我想在C#中解决这个异常.

c# reflection ref invoke

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

将代码作为参数传递 (C++)

我将如何将代码块传递给 C++ 中的函数。在 C# 中我可以做这样的事情:

void Example(Action action)
{
    action();
}

Example(() => {
    //do something
});
Run Code Online (Sandbox Code Playgroud)

非常感谢所有帮助和提示。

c++

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

Volley使用singleton将访问令牌附加到evey请求

我正在做以下完美的工作

    //else proceed with the checks
    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(
            Request.Method.GET,
            checkauthurl,
            null,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(String response) { 
                         //do stuff here
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                   // do stuff here
                }
            }) {
                @Override
                public Map<String, String> getHeaders() throws AuthFailureError {
                    HashMap<String, String> headers = new HashMap<String, String> ();
                    TokenService tokenservice = new TokenService(ctx);
                    String accesstoken = tokenservice.getToken(ApiHelper.ACCESS_TOKEN_SHARED_PREF);
                    headers.put("Authorization", "Bearer " + accesstoken);

                    return headers;
              }
    };

    // Access …
Run Code Online (Sandbox Code Playgroud)

java android android-volley

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

以 Vararg 作为第一个参数的 Kotlin 方法

注意我已经查看了以下问题/答案来解决问题而没有任何运气。 从 Kotlin 调用 Java Varargs Method - 这个方法在参数列表的末尾有可变参数参数,但我的问题是在参数列表的开头处理可变参数。 Kotlin:将 List 转换为 Java Varargs - 相同。其他搜索产生同样的结果。这些是我能找到的最接近的。

我正在String.split使用单个字符分隔符调用 Kotlin方法。这是一种vararg方法,其中vararg参数是多个参数中的第一个。该方法定义如下:

public fun CharSequence.split(vararg delimiters: Char, 
                              ignoreCase: Boolean = false,
                              limit: Int = 0): List<String>
Run Code Online (Sandbox Code Playgroud)

当我调用如下方法时,它编译得很好:

fun String.splitRuleSymbol() : String = this.split(':') //ok
Run Code Online (Sandbox Code Playgroud)

但是当我尝试添加ignoreCaselimit参数时,出现问题:

fun String.splitRuleSymbol() : String = this.split(':', true, 2) //compiler error
Run Code Online (Sandbox Code Playgroud)

我得到的错误是...

不能使用提供的参数调用以下函数:

public fun CharSequence.split(vararg delimiters: String, ignoreCase: Boolean = ..., limit: Int = ...): kotlin.text …

parameter-passing kotlin

5
推荐指数
2
解决办法
4313
查看次数

如何将字符串数组传递给android电子邮件意图

我正在尝试在 kotlin 中以编程方式发送电子邮件。

这是我的代码,是我从网上找到的 java 示例翻译而来的。

package com.example.emaildemo

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

class MainActivity: AppCompatActivity() {

    override fun onCreate(savedInstanceState:Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val editTextTo:EditText  = findViewById(R.id.editText)
        val editTextSubject:EditText = findViewById(R.id.editText2)
        val editTextMessage:EditText = findViewById(R.id.editText3)
        val button1:Button = findViewById(R.id.button)

        button1.setOnClickListener(View.OnClickListener{

          val to = editTextTo.getText().toString()
          val subject = editTextSubject.getText().toString()
          val message = editTextMessage.getText().toString()

          val intent = Intent(Intent.ACTION_SEND)
          val addressees = arrayOf(to)
          intent.putExtra(Intent.EXTRA_EMAIL, addressees)
          intent.putExtra(Intent.EXTRA_SUBJECT, subject)
          intent.putExtra(Intent.EXTRA_TEXT, message)
          intent.setType("message/rfc822")
          startActivity(Intent.createChooser(intent, "Select Email Sending App :")) …
Run Code Online (Sandbox Code Playgroud)

android kotlin

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

为什么我不必对 atan2 等使用“使用 Math::Trig”?

为什么我不必use Math::Trig;在我的 Perl 程序中使用来调用atan2()

根据文档atan2()不是“Perl 核心”的一部分。

我有 Perl 5.18.4。我查看了标准 Perl 模块列表,我确实看到列出了 Math::Trig,但我仍然认为“use”语句是必需的。诚然,此时我的 Perl 知识只有大约 6 个月。因此,一个简单的答案是引用 Perl 官方文档。或者,也许这里还有其他我不明白的事情。

这是我正在谈论的一个例子。

#!/usr/bin/perl
use strict;
use warnings;
$value = atan2(1, 1) * 4;
print "$value\n";
Run Code Online (Sandbox Code Playgroud)

输出:

  3.14159265358979
Run Code Online (Sandbox Code Playgroud)

perl perl-core

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