标签: string

如何在非托管C++ DLL和C#应用程序中声明常量字符串?

当然,我在启动时通过回调将我的const字符串值从我的C++传递到我的C#中,但我想知道是否有一种方法可以在C++头文件中定义它们,然后我也可以在C#中引用它们.

我已经用枚举这样做,因为它们很容易.我在我的C++库项目中包含一个文件(通过顶部有一个pragma的.h文件)和我的C#应用​​程序(作为链接):

#if _NET
public
#endif
enum ETestData
{
    First,
    Second
};
Run Code Online (Sandbox Code Playgroud)

我知道它听起来很乱,但它的工作原理:)

但是......我怎么能用字符串常量做同样的事情 - 我最初认为平台之间的语法太不同了,但也许有办法呢?

使用涉及#if _NET,#define等的巧妙语法?

使用资源文件?

使用C++/CLI库?

有任何想法吗?

c# c++ string unmanaged managed

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

我如何使用python itertools.groupby()按其第一个字符对字符串列表进行分组?

我有一个类似于此列表的字符串列表:

tags = ('apples', 'apricots', 'oranges', 'pears', 'peaches')
Run Code Online (Sandbox Code Playgroud)

我应该如何使用itertools.groupby()按每个字符串中的第一个字符对此列表进行分组?我应该如何提供itertools.groupby()所需的'key'参数?

python string python-itertools

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

如何从函数返回字符串文字

关于从函数返回字符串文字或字符串我总是很困惑.我被告知可能存在内存泄漏,因为您不知道何时会删除内存?

例如,在下面的代码中,如何实现foo()以使代码的输出为"Hello World"?

void foo (       )              // you can add parameters here.
{

}

int main ()
{
    char *c;
    foo (    );
    printf ("%s",c);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

另外,如果返回类型foo()不是无效,但你可以返回char*,它应该是什么?

c++ string return-type literals

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

C++字符串怎么样

这是一个非常简单的问题,我觉得它很愚蠢,但我很紧张,我需要弄清楚:)

我只需要知道如何创建一个包含文本和其他变量的字符串.例如在Java中,我可以这样做:

String someString;

for(int i = 0; i>10; i++){

someString = ("this text has printed " + i + " times"); //how do I create this line in C++?

System.out.println(someString);

i++;

}
Run Code Online (Sandbox Code Playgroud)

编辑4:

好吧,Rahul G在下面的回答非常好,并且程序编译好了,但是当我运行它而不是获取我想要的文件名字符串时,我得到了一堆数字.例如:<< "frame " << i << " .jpg"创建:"013679000.jpg"而不是"frame 0.jpg"就像我想要的那样.有什么想法吗?

for(int i = 0; frames; i++)
{  
  frame = cvQueryFrame(capture); 
  std::string s = static_cast<std::ostringstream &>(std::ostringstream() << argv[1] <<  i << " .jpg").str(); 
  cvSaveImage(s.c_str(), frame);
} 
Run Code Online (Sandbox Code Playgroud)

c++ string

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

在.Net中是否有办法获取int的单词的字符串值?

例如:

(1).SomeFunction().Equals("one")
(2).SomeFunction().Equals("two")
Run Code Online (Sandbox Code Playgroud)

在我正在使用的情况下,我真的只需要数字1-9,我应该只使用一个开关/选择案例吗?

更新我也不需要本地化.

更新2这是我最终使用的内容:

Private Enum EnglishDigit As Integer
    zero
    one
    two
    three
    four
    five
    six
    seven
    eight
    nine
End Enum

(CType(someIntThatIsLessThanTen, EnglishDigit)).ToString()
Run Code Online (Sandbox Code Playgroud)

.net vb.net string int integer

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

在C#中访问VB6字符串的最快方法

我正在使用COM Interop.我在VB6中调用了一个大约13000个字符串的字符串.如果我在纯VB6中执行调用,则执行大约需要800ms.如果我通过c#和COM Interop执行它大约需要8秒钟.我假设延迟是由编组引起的.

如果我对编组是正确的,如果有人能以最快的方式建议我进入C#,我将不胜感激.例如,a)将其作为字节数组公开b)将一个byref字符串参数提供给VB6层会更好吗?

我也很感激一些示例代码.我试过了

Marshal.PtrToStringAuto(Marshal.ReadIntPtr(myCOMObject.GetString, 0)
Run Code Online (Sandbox Code Playgroud)

无济于事.

-

继弗朗西的评论之后.我只是简单地从C#dll引用VB6 dll(正在处理中).这是OLEView的摘录

interface _MyCOMObect : IDispatch {
        ...
        [id(0x60030006)]
        HRESULT GetString(
                        [in] _IEventHistory* p_oEventHistory, 
                        [out, retval] _IXML** );
        ...
    };

    [
      uuid(09A06762-5322-4DC1-90DD-321D4EFC9C3E),
      version(1.0),
        custom({17093CC6-9BD2-11CF-AA4F-304BF89C0001}, "0")
    ]
    coclass MyCOMObject {
        [default] interface _CFactory;
    };

    [
      odl,
      uuid(C6E7413F-C63A-43E4-8B67-6AEAD132F5E5),
      version(1.0),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
Run Code Online (Sandbox Code Playgroud)

我应该指出参数(p_oEventHistory)是我在C#中实例化的另一个COM对象,但需要大约80ms

小号

c# string vb6 com-interop marshalling

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

jQuery:缩短字符串长度以适应设置的宽度

我有一个表,在每个单元格中我想放置字符串,但它们比单元格宽度宽得多.为了防止换行,我想缩短字符串以适应单元格,并在末尾附加"..."以指示字符串更长.

该表有大约40行,必须对每个单元格进行,所以它很快就很重要.我应该使用JS/jQuery吗?

我该怎么办?

感谢您的时间.

亲切的问候,
马吕斯

javascript string jquery

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

用于从句子中删除前导和尾随回车符和换行符的正则表达式

还可以将其与字符串中的句点相结合吗?句子可能有空格,我想保留.

regex string

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

当它应该在C#/ Java中返回-1时,IndexOf方法返回0

我的一个朋友带着这种我无法解释的奇怪行为来找我,任何洞察力的观点都会受到赞赏.

我正在运行VS 2005(C#2.0),以下代码显示了该行为

int rr = "test".IndexOf("");
Console.WriteLine(rr.ToString());
Run Code Online (Sandbox Code Playgroud)

上面的代码,打印"0",清楚地表明它应该返回-1

这也发生在Java中,下面的Class显示了这种行为:

public class Test{
 public static void main(String[] args){
   System.out.println("Result->"+("test".indexOf("")));
 }
}
Run Code Online (Sandbox Code Playgroud)

我正在运行Java 1.6.0_17

c# java string logic indexof

7
推荐指数
4
解决办法
7286
查看次数

java中的字符串数

我有类似"ali123hgj"的东西.我想要123整数.我怎么能在java中做到这一点?

java string numbers

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