我是C#的新手,我正在尝试为我的项目使用帮助包.包是用c编写的,有1)/ bin /几个.dll文件2)/ include /有一个头文件3)/ lib/msvc/.lib文件我的问题是如何在我的C#WPF项目中使用这些文件?我知道C#中没有"#include",并且无法通过添加到项目的引用来导入.dll.那我怎么能在C#中做到这一点?
谢谢
我写了一个visual c ++ win32控制台应用程序,我写了它并测试了它
win32控制台项目
.然后我切换到
win32项目
并导入所有源文件并为其创建一个dll.通过标记我想要导出的类
#define DllExport __declspec( dllexport )
class DllExport theClass {
}
Run Code Online (Sandbox Code Playgroud)
它工作,并生成DLL.然后我创建了另一个c#项目,并希望将dll添加到项目中.通过引用 - >添加引用 - >浏览器.然后我选择那个DLL.然后它给了我一个错误
无法添加对'''''''的引用.请确保该文件是可访问的,这是一个有效的程序集或com组件.
谁知道我在哪里生错误/生成/导入dll?
谢谢
void fileNameProcess(char * inputName){
int size =strlen(inputName);
bool change=false;
char * name=inputName;
for(int i =0; i<size; i++){
char temp=* (name+i);
if(temp<0x10||temp>0x5b){
change=true;
}else if(0x19<temp<0x21){
change=true;
}else if(0x3a<temp<0x41){
change=true;
}
if(change){
//*(name+i)='_';
memset(name+i, '_', 1);
change=false;
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试在字符串(memeset)中设置一个字符时,它会中断,但我不明白为什么它不允许我这样做?为什么我可以允许访问读取但无法修改它?任何人都可以在记忆方面解释它.我想这是因为字符串被传递到函数中.但只要我知道记忆的位置,我可以把它设置好吗?
谢谢
char * filename= strdup("try1.mat");
writter.locate(filename);
Run Code Online (Sandbox Code Playgroud)
在找到它时,将文件名指定给类memeber char*filepath
#include<stdlib.h>
#include<stdio.h>
int main(){
int row;
int col;
int i=1;
double ** doubleNode;
// *(*(doubleNode+row)+coln)
doubleNode=malloc(sizeof(double)*4);
*doubleNode=malloc(sizeof(double *)*4);
for(row=0; row <4; row++){
for(col =0; col<4;col++){
*(*(doubleNode+row)+col)=i;
i++;
}
}
free(doubleNode);
free(*doubleNode);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是双指针的测试代码.它用gcc编译好,但是当我运行它时.它给了我分段错误.你知道我哪里做错了吗?
谢谢
我在if宏中有一个typedef ,类似于:
#ifdef BLA_BLA
typedef int typeA
#elseif
typedef double tyeA
#endif
printf("%d" , a); printf("%l" , a);
Run Code Online (Sandbox Code Playgroud)
我想知道在为这种情况编写printf时最好的方法是什么?(%d或%l).
我知道我也可以在宏中定义一个固定的字符串.但这是最好的方式吗?
我在fread时从浮动到双重铸造有问题;
fread(doublePointer,sizeofFloat,500,f);
Run Code Online (Sandbox Code Playgroud)
如果我将双指针更改为浮点指针,它可以正常工作.但是,我需要它是laster on的双指针,我想当我从小数据类型(float)写入更大的数据类型(double)的内存时,它应该没问题.但事实证明它不像我预期的那样有效.这有什么问题,我该如何解决这个问题.
我知道我可以通过逐个转换来解决它.但我有大量的数据.我不想额外9000000+轮转换..这将是非常昂贵的.有什么技巧可以解决吗?
有没有c ++/c技巧
谢谢