C#调用C++DLL结构体指针传参问题,求大神现身指导,在线等!!!

c++方法:

 extern "C" _declspec(dllexport) bool GetKE(string CaseId, string CaseText, string &CaseReason, SS *KeList,int &nLen_KeList);

c++结构体:

 typedef struct BriefKE
{
    string KeName;
    string KeValue;
}SS;

C#结构体:

 [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=1)]
    public struct BriefKE 
    {
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
        public string KeName;
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
        public string KeValue;

    }

C#函数:

 [DllImport("KnowledgeExtract.dll", EntryPoint = "GetKE")]
        [return: MarshalAs(UnmanagedType.Bool)]
        public unsafe static extern bool GetKE(StringBuilder CaseId, StringBuilder CaseText, ref StringBuilder CaseReason, BriefKE[] infos, ref int nLen_KeList);

C#调用:

//结构体数组指针初始化
SS[] KeList = new SS[20];
                for (int i = 0; i < KeList.Length; i++)
                {
                    KeList[i] = new SS();
                }
                IntPtr[] ptArray = new IntPtr[1];
                ptArray[0] = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(SS)) * 20);
                IntPtr pt = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(SS)));
                Marshal.Copy(ptArray, 0, pt, 1);
//其他几个参数初始化省略
 if (!test.GetKE(caseId, caseText, ref caseReason, infos, ref len))
                {
                    Console.WriteLine("读取失败");
                    Console.ReadLine();
                }

总是报下面这个错,请大神给写一个C#调用的例子

 “System.AccessViolationException”类型的未经处理的异常在 未知模块。 中发生 

其他信息: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

1个回答

C++的string和C#的string不兼容,C++那里最好用字符数组。

zxb0202
法号晋空 C++DLL是别人提供的,没法改。C++里的string和C#里的StringBuilder是对应的吧?应该不是这块的问题,应该是结构体指针的问题,但不知道怎么解决
接近 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C#调用C++DLL结构体指针传参问题,求大神现身指导,在线等!!!

c++方法: ``` extern "C" _declspec(dllexport) bool GetKE(string CaseId, string CaseText, string &CaseReason, SS *KeList,int &nLen_KeList); ``` c++结构体: ``` typedef struct BriefKE { string KeName; string KeValue; }SS; ``` C#结构体: ``` [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=1)] public struct BriefKE { [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] public string KeName; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] public string KeValue; } ``` C#函数: ``` [DllImport("KnowledgeExtract.dll", EntryPoint = "GetKE")] [return: MarshalAs(UnmanagedType.Bool)] public unsafe static extern bool GetKE(StringBuilder CaseId, StringBuilder CaseText, ref StringBuilder CaseReason, BriefKE[] infos, ref int nLen_KeList); ``` C#调用: ``` //结构体数组指针初始化 SS[] KeList = new SS[20]; for (int i = 0; i < KeList.Length; i++) { KeList[i] = new SS(); } IntPtr[] ptArray = new IntPtr[1]; ptArray[0] = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(SS)) * 20); IntPtr pt = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(SS))); Marshal.Copy(ptArray, 0, pt, 1); //其他几个参数初始化省略 if (!test.GetKE(caseId, caseText, ref caseReason, infos, ref len)) { Console.WriteLine("读取失败"); Console.ReadLine(); } ``` 总是报下面这个错,请大神给写一个C#调用的例子 ``` “System.AccessViolationException”类型的未经处理的异常在 未知模块。 中发生 其他信息: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。 ```

C# 调用c++函数 结构体 指针

求大神解答下, c++结构体: typedef struct { Byte byIndex; Byte byRW; }PACKET; typedef struct { PACKET *pPackets; INT32 iNumPackets; }BLOCK c++ 函数申明: BOOL Transfer(BLOCK block); C#如何调用这个Transfer函数: 1:定义C#结构体 public struct PACKET { byte byIndex; byte byRW; } 那么另个结构体BLOCK在C#中怎么定义??? 2. 定义完后如何调用(DllImport这个我知道),其他有什么特殊设置????

c# 调用c++ sdk 传结构体指针

本人菜鸟一枚 SDK函数 LIBBVCU_API BVCU_Result BVCU_Initialize( const BVCU_GlobalParam* pParam); 其中 BVCU_GlobalParam为结构体 typedef struct _BVCU_GlobalParam { int iSize; void (*OnEvent)(int iEventCode, void* pParam); int iReserved[4]; }BVCU_GlobalParam; 问题我是该直接传递一个指针,还是传一个BVCU_GlobalParam类型参数 public IntPtr m_bvcuSdkHandle; BVCU_Initialize(ref Im_bvcuSdkHandle)(指针) 还是 BVCU_Initialize(ref _BVCU_GlobalParam bg) (结构体) [DllImport("libBVCU.dll", CallingConvention = CallingConvention.Cdecl)] public static extern int BVCU_Initialize(ref IntPtr handle); [StructLayout(LayoutKind.Sequential)] public struct BVCU_GlobalParam { public int iSize; public CallbackDelegate OnEvent; [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)] public int[] iReserved; }; 这两种都试了,接口返回还是参数不符合,请大神上码指教

C#调用纯C的DLL时,结构体指针、数组、二维数组 怎么转换?

用纯C写的 迪杰斯特拉算法,封装成DLL后,用C#调用。C的结构体: ``` typedef struct _graph { int Vertex[VEXNUM]; //顶点信息 int AdjMatrix[VEXNUM][VEXNUM]; //邻接矩阵 int vexnum; //顶点数 int arcnum; //弧数 }*MyGraph; void CreatGraph(MyGraph g){} ``` 那么在C#中怎么调用呢? (数组、二维数组、结构体指针)

C#调用C++ Dll 返回信息与C++返回结构体中信息不一致?

各位大佬,小弟遇到一个很难理解的问题,情况如下: C++ 开发的Dll和硬件通讯,在C++中使用返回正常的数值,而在C#中通过DllImport方式调用,发现返回的数值不一致,具体代码如下: ** C++ 提供的结构体:** ``` typedef struct _SXPSERVER { BYTE bNodeaddr[6]; DWORD dwIp; char szMachineType[16]; char szHostName[16]; } SXPSERVER, *LPSXPSERVER; ``` ![图片说明](https://img-ask.csdn.net/upload/202003/09/1583717423_841994.png) **C# 自己写的DllImport 的结构体** ``` [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public struct SXPSERVER { public uint dwIp; [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)] public byte[] bNodeaddr; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 16)] public string szMachineType; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 16)] public string szHostName; } ``` ![图片说明](https://img-ask.csdn.net/upload/202003/09/1583717435_345718.png) 调用全部都一切正常,结构体中也能够返回值,现在就是这个DWORD dwIp; 转换到C#中的 public uint dwIp;返回不一样,其他的都没有问题,请问各位大佬,我这个转换不对吗?查了半天看到的对应转换关系都是DWORD -》uint,我改成了int同样也是不对,这个咋整,这个值还会是后面的函数中的关键参数,卡到这里进行不下去了。 PS:看到有大神留言说这个参数位置写反了,我最开始的时候就是按照这个顺序( ``` [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public struct SXPSERVER { [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)] public byte[] bNodeaddr; public uint dwIp; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 16)] public string szMachineType; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 16)] public string szHostName; } ``` )来的,出来的结果和这个是一样的 **问题已经解决了,解决的方式是这样的:** 我在C++的结构体与C#定义的结构体的顺序是不一样的,但这个不是主要的原因。而是我调用方式有问题。我把c#实现的这个结构体单独放到了一个DLL中,然后再通过别的工程去调用这个DLL,这样的话。不管结构体中的顺序是什么,它都能够调用成功,但是他成功之后,里面的数值是不对的,这个是我通过反编译看到的,所有的结构体变量约束都没有了,所以这个值肯定不对啦。而我把这个调用C++的这个结构体直接放到了我现在用的工程当中,按照错误的顺序,这个方法都不会调用成功,而按照正确的顺序后就ok啦!

关于c#调用c++dll中结构体相关问题

c#中:[DllImport("footDLL.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public extern static void sc(); c++dll中:extern"C" { _declspec(dllexport) void __stdcall sc() { A a(1, 2); a.add(); ofstream fout; fout.open("E:\\test6.txt"); fout << "TRUE" << endl << a.gre(); fout.close(); system("pause"); } } 其中头文件: typedef struct { int x[max_vertex_num][max_vertex_num]; string str[max_vertex_num]; double sd[max_vertex_num]; }s; class A { public: A(int x, int y) { this->x = x; this->y = y; } void add() { x = x + y; } int gre() { return this->x; } private: int x; int y; listnode *l; s d; //Mgragh g; } 为什么dll中结构体s是x数组从一维数组编程二维数组后,c#调用dll函数出现“System.StackOverflowException”类型的未经处理的异常在 Route.exe 中发生 这种BUG,怎么解决?

高分悬赏,Java语言如何调用C语言写的dll,并且传递结构体指针

高分悬赏,Java语言如何调用C语言写的dll,并且传递结构体指针 高分悬赏,Java语言如何调用C语言写的dll,并且传递结构体指针

C#调用c++ dll 封送结构体数组,无法成功

c++代码: class qf { private: char *id; char *mc; float sd; int LX; }; 函数:int EntryPoint(qf *qfw); c#代码: public class qf { private string id; private string mc; private float sd; private int LX; }; c#调用: qf[] qfw = new qf[2]; for (int i = 0; i < qfw.Length; i++) { qfw[i] = new qf(t, t, (float)0.5, 1); } IntPtr[] ptrarr = new IntPtr[1]; ptrarr[0] = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(qf)) * 2); //分配包含两个元素的数组 IntPtr pt = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(qf))); Marshal.Copy(ptrarr, 0, pt, 1); //拷贝指针数组 dll.EntryPoint( pt); 可以进入c++,但是传进去的pt是乱码?这是为何呢?求大神解释?

c#调用C++dll 返回值为结构体,其中包含string, 报错

c++ ``` struct ClientInfo { char adress[4]; }; extern "C" __declspec(dllexport) ClientInfo Test() { ClientInfo c; strcpy_s(c.adress, "1234"); return c; } ``` c# ``` [DllImport("ManagerAPI.dll")] public static extern ClientInfo Test(); [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public struct ClientInfo { [MarshalAs(UnmanagedType.ByValTStr, SizeConst =4)] public string address; } ClientInfo c =Test(); Console.WriteLine(c.address); ``` 调用的时候老是报 方法类型签名与pinvoke不兼容 c++ 中的char[] 到底对应着c#中的什么类型。 求助

C# 关于结构体指针的问题

在C#不支持Marshal(及下面所有的东西)时,怎么处理C++函数返回的结构体指针?

关于c语言结构体指针的问题

结构体指针只包含了结构体的首地址还是包含了所有成员的地址?还有结构体的首地址是什么,比如第一个成员是一个数组,那么首地址是不是就是这个数组的首地址?

python 调用C++函数,关于结构体传参问题

python 调用C++函数,C++函数的参数类型是pyobject*,其实是一个结构体数组 类似于 #define NUM 32 stuct A { int a; int b; }; struct B { int len; A ab[NUM]; } 请问在python中如何将这个结构体数组表示出来并传给 C++函数。 我在python中用类表示的 class A: def __init__(self): self.a=0 self.b=0 class B: def __init__(self): self.len =0 self.ab=[] 但是提示 new style getargs format but argument is not a tuple 第一个问题是我用类表示结构体对不对, 第二个问题我该怎样做。 python新手,跪求请教

关于C中二级指针传参的问题

``` #include <stdio.h> #include <stdlib.h> #define m 3 #define n 4 typedef struct Lnode { int data; struct Lnode *next; }Lnode,*Linklist;//节点类型和指向结构的指针类型 void CreatlistF(Linklist *L); void main () { Linklist L1; // Linklist p;//等价于Lnode *p; //p=&L; CreatlistF(&L1); printf("\n"); } void CreatlistF(Linklist *L) { *L=(Linklist)malloc(sizeof(Lnode)); printf("\n"); } ``` 代码如上,在调试过程中出现如下图结果: ![图片说明](https://img-ask.csdn.net/upload/201608/09/1470738767_989643.png) ![可以看到,此时指针L保存的是L1自身的地址](https://img-ask.csdn.net/upload/201608/09/1470738785_395008.png) **接下来分配一块内存,这一步会使指针L指向这块内存吧?** ![图片说明](https://img-ask.csdn.net/upload/201608/09/1470739321_907497.png) **这个过程表明,L1指向了这块分配好的内存地址** 我不是太明白: * malloc不应该是返回一个指向这块内存地址的指针,假设这个指针是p,那么malloc那一句应该等价于*L=*p; * 所以说应该是让L指向这块内存,因而L存储的应该是分配的内存地址。 * 怎么结果是使L1指向这个地址了。

关于c语言结构体指针数组的问题

我有一个数组,里面每个成员都是结构体指针,我应该怎么给这个数组分配空间?

结构体指针多层嵌套结构体指针的深度拷贝

程序中有一个结构体指针,我想拷贝一份,建立一个新的结构体指针变量,并且分配内存。 可是结构体里面嵌套了多层结构体指针,这样分配内存好麻烦,一层一层的,也怕漏掉。 有没有什么好的办法进行这种结构体指针的深度拷贝?主要是嵌套太多层。 我的需求如下: struct A { int a; double b; struct B* c; } struct B{ double d; struct C* e; } struct C{ char s; } struct D{ int h; struct B* f; } 我有一个已经分配过的struct D变量OLD, 现在我自己重新分配了空间生成了struct A变量NEW.想拷贝OLD的f所指向的内容给NEW的c。该如何实现?

C语言一个结构体指针的问题

我用一个子函数初始化了一个结构体并返回结构体的地址,但是却发现在主函数中输出的num和str字符串和子函数中输出的不一样,主函数中输出的内容更像是一些乱码,但是两个函数中的地址是一致的,这是哪儿出现什么问题了吗? 代码如下,大家可以测试一下(这个代码并没有实际意义,就是在练习结构体时候瞎写的) ``` #include <stdio.h> struct Test { int num; char str[20]; }; struct Test * function(); int main() { struct Test *p = function(); printf("address : %p\n", p); printf("num = %d\n", p->num); printf("str = %s\n", p->str); } struct Test * function() { struct Test test = { 10, "hello world" }; struct Test *p = &test; printf("num = %d\n", p->num); printf("str = %s\n", p->str); printf("address : %p\n", p); return p; } ``` 附上运行结果图: 第一行是子函数中的num 第二行是子函数中的str 第三行是子函数中返回的地址 第四行是主函数中接收到的地址 第五行是主函数中的num 第六行是主函数中的str ![图片说明](https://img-ask.csdn.net/upload/201705/21/1495334379_666758.png)

C#调用DLL结构体,第一次成功,第二次的时候就报错。尝试读取或写入受保护的内存。

C++代码 typedef struct tagIDCardData{ char Name[32]; //姓名 char Sex[6]; //性别 char Nation[20]; //名族 char Born[18]; //出生日期 char Address[72]; //住址 char IDCardNo[38]; //身份证号 char GrantDept[32]; //发证机关 char UserLifeBegin[18]; // 有效开始日期 char UserLifeEnd[18]; // 有效截止日期 char reserved[38]; // 保留 char PhotoFileName[255];// 照片路径 }IDCardData; int _stdcall Syn_ReadMsg( int iPort,int iIfOpen,IDCardData *pIDCardData ); C#代码 [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)] public struct IDCardData { [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] public string Name; //姓名 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 6)] public string Sex; //性别 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)] public string Nation; //名族 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 18)] public string Born; //出生日期 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 72)] public string Address; //住址 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 38)] public string IDCardNo; //身份证号 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] public string GrantDept; //发证机关 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 18)] public string UserLifeBegin; // 有效开始日期 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 18)] public string UserLifeEnd; // 有效截止日期 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 38)] public string reserved; // 保留 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 255)] public string PhotoFileName; // 照片路径 } [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_ReadMsg", CharSet = CharSet.Ansi)] public static extern int Syn_ReadMsg(int iPortID, int iIfOpen, ref IDCardData pIDCardData); 应用代码 public int nRet=0;pulblic int nPort=1001;private void ListenCard() { try { while (!_bListenCardQuit) { IDCardData CardMsg = new IDCardData(); nRet = Syn_ReadMsg(nPort, 0, ref CardMsg);//读取信息 GC.Collect(2, GCCollectionMode.Optimized); Thread.Sleep(500); } _bQuitListenCardDone = true; #region 异常 catch (Exception eE) { } #endregion } 运行到这里( nRet = Syn_ReadMsg(nPort, 0, ref CardMsg);//读取信息),第一次成功,运行第二次的时候就报错:出现尝试读取或写入受保护的内存。这通常指示其他内存已损坏! 恳请各位大牛帮忙解决一下问题啊!

一个c++的方法结构体,c#调用传入结构体导出一直不对,求各位大神帮忙

struct HL7SDK_INTERFACE { void (* OnConnect) (int iBedNO); void (* OnDisconnect)(int iBedNO); void (* OnRecvHL7Msg)(int iBedNO, void * pMsg, int iLen, int iMsgType); void (* OnSendHL7Msg)(int iBedNO, void *pMsg, int iLen, int iMsgType); }; typedef struct HL7SDK_INTERFACE HL7SDK_INTERFACE, *PHL7SDK_INTERFACE; int InitHL7SDK(PHL7SDK_INTERFACE pHL7SDKInterace, enum HL7_WORK_MODE enHL7ServerMode, unsigned long ulServerIP, unsigned long ulLocalIP); 一个c++的方法结构体,c#调用传入结构体导出一直不对,求各位大神帮忙 [DllImport("HL7SDK.dll", EntryPoint = "InitHL7SDK", CallingConvention = CallingConvention.Cdecl)] public extern static int InitHL7SDK(ref SDKStruct pHL7SDKInterace, publicStruct.HL7_WORK_MODE serverMode, System.UInt32 serverIP, System.UInt32 localIP);

关于C语言结构体指针类型的强制转换(求大神详细解答)

``` #include <iostream> #include <algorithm> using namespace std; typedef struct { string dna; int count; }DNA; DNA dna[101]; **int cmp(const void *a,const void *b) { DNA *aa = (DNA *)a; DNA *bb = (DNA *)b; return aa->count-bb->count; }** int main() { int n,m; char c; cin>>n>>m; for(int i = 0; i < m; i++) { cin>>dna[i].dna; dna[i].count = 0; for(int j = 0; j < n; j++) for(int k = j+1; k < n; k++) { if(dna[i].dna[j]>dna[i].dna[k]) dna[i].count++; } } qsort(dna,m,sizeof(dna[0]),cmp); for(int i = 0; i < m; i++) cout<<dna[i].dna<<endl; return 0; } ``` 加粗体部分是指针类型强制转换,但是我不明为什么,求大神详细解答

C#调用C++的dll,C++程序中给结构体中变量赋值this指针,对应C#中应该怎么写呢?

C++程序中有一个结构体 ``` struct Ctx { void* owner; DevInfo devinfo; }; ``` 对话框类头文件中有 ``` Ctx m_ctx;//回调上下文, 作为回调函数的参数 ``` 在对话框初始化程序中有 ``` m_ctx.owner = this; ``` 我在C#中定义结构体 ``` public struct Ctx { public IntPtr powner; public DevInfo devinfo; } ``` 定义了 public Ctx m_ctx; 那么怎么给m_ctx.powner赋值呢? 下面是部分代码,需要的话也可以把代码都发出来 C++ ``` BOOL Cdbc_demoDlg::OnInitDialog() { CDialog::OnInitDialog(); // 将“关于...”菜单项添加到系统菜单中。 // IDM_ABOUTBOX 必须在系统命令范围内。 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { BOOL bNameValid; CString strAboutMenu; bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); ASSERT(bNameValid); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码 m_hDBC = DBC_Init(); if (INVALID_DBC_HANDLE == m_hDBC) { MessageBox(_T("生成DBC句柄失败!")); return TRUE; } m_ctx.owner = this; m_ctx.devinfo = m_devInfo; DBC_SetSender(m_hDBC, OnSendFunc, &m_ctx); DBC_SetOnMultiTransDoneFunc(m_hDBC, OnMultiTransDoneFunc, &m_ctx); InitList(); if (!InitDevice()) { MessageBox(_T("打开设备失败!")); return TRUE; } return TRUE; // 除非将焦点设置到控件,否则返回 TRUE } ```

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

你连存活到JDK8中著名的Bug都不知道,我怎么敢给你加薪

CopyOnWriteArrayList.java和ArrayList.java,这2个类的构造函数,注释中有一句话 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public ArrayList(Collection&lt;? ...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

记录下入职中软一个月(外包华为)

我在年前从上一家公司离职,没想到过年期间疫情爆发,我也被困在家里,在家呆着的日子让人很焦躁,于是我疯狂的投简历,看面试题,希望可以进大公司去看看。 我也有幸面试了我觉得还挺大的公司的(虽然不是bat之类的大厂,但是作为一名二本计算机专业刚毕业的大学生bat那些大厂我连投简历的勇气都没有),最后选择了中软,我知道这是一家外包公司,待遇各方面甚至不如我的上一家公司,但是对我而言这可是外包华为,能...

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

培训班出来的人后来都怎么样了?(二)

接着上回说,培训班学习生涯结束了。后面每天就是无休止的背面试题,不是没有头脑的背,培训公司还是有方法的,现在回想当时背的面试题好像都用上了,也被问到了。回头找找面试题,当时都是打印下来天天看,天天背。 不理解呢也要背,面试造飞机,上班拧螺丝。班里的同学开始四处投简历面试了,很快就有面试成功的,刚开始一个,然后越来越多。不知道是什么原因,尝到胜利果实的童鞋,不满足于自己通过的公司,嫌薪水要少了,选择...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

6年开发经验女程序员,面试京东Java岗要求薪资28K

写在开头: 上周面试了一位女程序员,上午10::30来我们部门面试,2B哥接待了她.来看看她的简历: 个人简历 个人技能: ● 熟悉spring mvc 、spring、mybatis 等框架 ● 熟悉 redis 、rocketmq、dubbo、zookeeper、netty 、nginx、tomcat、mysql。 ● 阅读过juc 中的线程池、锁的源...

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

SpringBoot系列之Redis缓存使用详细教程

Spring的缓存抽象 Spring从3.1开始定义了一系列抽象接口来统一不同的缓存技术;并支持使用Java Caching(JSR-107)注解简化我们进行缓存开发。Spring Cache 只负责维护抽象层,具体的实现由你的技术选型来决定。将缓存处理和缓存技术解除耦合。 JSR107 Java Caching(JSR-107)定义了5个核心接口,分别是CachingProvider, Cach...

推荐9个能让你看一天的网站

分享的这9个保证另你意外的网站,每个都非常实用!非常干货!毫不客气的说,这些网站最少值10万块钱。 利用好这些网站,会让你各方面的技能都得到成长,不说让你走上人生巅峰,但对比现在的你,在眼界、学识、技能方面都有质的飞跃。 一、AIRPANO 传送门:https://www.airpano.com/360photo_list.php 这是一个可以躺在家里,就能环游世界的神奇网站。 世界那么大,绝大多...

大牛都会用的IDEA调试技巧!!!

导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点...

都前后端分离了,咱就别做页面跳转了!统统 JSON 交互

文章目录1. 无状态登录1.1 什么是有状态1.2 什么是无状态1.3 如何实现无状态1.4 各自优缺点2. 登录交互2.1 前后端分离的数据交互2.2 登录成功2.3 登录失败3. 未认证处理方案4. 注销登录 这是本系列的第四篇,有小伙伴找不到之前文章,松哥给大家列一个索引出来: 挖一个大坑,Spring Security 开搞! 松哥手把手带你入门 Spring Security,别再问密...

月薪22K程序员,打卡迟到10次,收到工资短信一脸懵逼

每家公司为了保证公司员工每天的工作时间,一般都会采用上下班打卡的工作制度,这其实是一个很常见的是,本身也没有什么问题的。正所谓无规矩不成方圆,公司肯定是有公司的规矩,虽然每个员工都很不喜欢这些规矩来束缚我们,但是公司也只是为了能更好的管理员工。但是一家公司如果一成不变的使用打卡制度,而不会去变通管理,也真不一定是好事。 打卡制度特别对于销售部门来说,不但会让公司发展不起来,还很容易丢失员工。但如...

97年世界黑客编程大赛冠军作品(大小仅为16KB),惊艳世界的编程巨作

这是世界编程大赛第一名作品(97年Mekka ’97 4K Intro比赛)汇编语言所写。 整个文件只有4095个字节, 大小仅仅为16KB! 不仅实现了3D动画的效果!还有一段震撼人心的背景音乐!!! 内容无法以言语形容,实在太强大! 下面是代码,具体操作看最后! @echo off more +1 %~s0|debug e100 33 f6 bf 0 20 b5 10 f3 a5...

程序员是做全栈工程师好?还是专注一个领域好?

昨天,有位大一的同学私信我,说他要做全栈工程师。 我一听,这不害了孩子么,必须制止啊。 谁知,讲到最后,更确定了他做全栈程序员的梦想。 但凡做全栈工程师的,要么很惨,要么很牛! 但凡很牛的,绝不是一开始就是做全栈的! 全栈工程师听起来好听,但绝没有你想象的那么简单。 今天听我来给你唠,记得帮我点赞哦。 一、全栈工程师的职责 如果你学习编程的目的只是玩玩,那随意,想怎么学怎么学。...

不要再到处使用 === 了

我们知道现在的开发人员都使用 === 来代替 ==,为什么呢?我在网上看到的大多数教程都认为,要预测 JavaScript 强制转换是如何工作这太复杂了,因此建议总是使用===。这些都...

什么是a站、b站、c站、d站、e站、f站、g站、h站、i站、j站、k站、l站、m站、n站?00后的世界我不懂!

A站 AcFun弹幕视频网,简称“A站”,成立于2007年6月,取意于Anime Comic Fun,是中国大陆第一家弹幕视频网站。A站以视频为载体,逐步发展出基于原生内容二次创作的完整生态,拥有高质量互动弹幕,是中国弹幕文化的发源地;拥有大量超粘性的用户群体,产生输出了金坷垃、鬼畜全明星、我的滑板鞋、小苹果等大量网络流行文化,也是中国二次元文化的发源地。 B站 全称“哔哩哔哩(bilibili...

十个摸鱼,哦,不对,是炫酷(可以玩一整天)的网站!!!

文章目录前言正文**1、Kaspersky Cyberthreat real-time map****2、Finding Home****3、Silk – Interactive Generative Art****4、Liquid Particles 3D****5、WINDOWS93****6、Staggering Beauty****7、Ostagram图片生成器网址****8、全历史网址*...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

​能让德国人放弃现金支付​,也没谁了

在新冠疫情中,德国人越来越多地选择在超市,加油站或其他商店付款时使用非接触式付款方式。德国信贷协会Deutschen Kreditwirtschaft (DK) 的一位发言人告诉德国新...

大厂的 404 页面都长啥样?最后一个笑了...

每天浏览各大网站,难免会碰到404页面啊。你注意过404页面么?猿妹搜罗来了下面这些知名网站的404页面,以供大家欣赏,看看哪个网站更有创意: 正在上传…重新上传取消 腾讯 正在上传…重新上传取消 网易 淘宝 百度 新浪微博 正在上传…重新上传取消 新浪 京东 优酷 腾讯视频 搜...

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

原来实现钉钉自动签到如此简单,每天准时上下班不是梦

本文主要介绍了如何利用现成软件快速实现钉钉自动签到功能,核心思路非常简单,甚至无任何编程基础的小白也能轻松实现定时自动打卡功能.

前端还能这么玩?(女朋友生日,用前端写了一个好玩的送给了她,高兴坏了)

前端还能这么玩?(女朋友生日,用前端写了一个好玩的送给了她,高兴坏了)

爬虫(101)爬点重口味的

小弟最近在学校无聊的很哪,浏览网页突然看到一张图片,都快流鼻血。。。然后小弟冥思苦想,得干一点有趣的事情python 爬虫库安装https://s.taobao.com/api?_ks...

讲真,这两款idea插件,能治愈你英语不好的病

时不时就有小伙伴问我,“二哥,能推荐一款 IDE 吗?”你看这话问的,现在搞 Java 的不都在用 Intellij IDEA 吗,还用得着推荐(我已经和 Eclipse 分手了)。然后小伙伴又说,“二哥,IDEA 支持中文吗?我英语不太好。”你看这话问的,搞编程的,英语不好是硬伤啊! 不过,随着 IDEA 最新版(版本号是 2020.1)的发布,英语不好的病可以彻底治愈了。为什么这么说呢?因为 ...

面试官给我挖坑:a[i][j] 和 a[j][i] 有什么区别?

点击上方“朱小厮的博客”,选择“设为星标”后台回复&#34;1024&#34;领取公众号专属资料本文以一个简单的程序开头——数组赋值:int LEN = 10000; int[][] ...

相关热词 c#树形选择 c#中类图的使用方法 c# 传参 调用exe c# 怎么定义方法 c# 修改本地时间 c#前台怎么读取资源文件 c# xml转list c#实现框选截图 m*m乘法表c# c# 乘法99表
立即提问