惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
T
Troy Hunt's Blog
Schneier on Security
Schneier on Security
N
News | PayPal Newsroom
Hacker News: Ask HN
Hacker News: Ask HN
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Google DeepMind News
Google DeepMind News
www.infosecurity-magazine.com
www.infosecurity-magazine.com
N
News and Events Feed by Topic
V
Vulnerabilities – Threatpost
Cyberwarzone
Cyberwarzone
K
Kaspersky official blog
P
Privacy & Cybersecurity Law Blog
P
Privacy International News Feed
WordPress大学
WordPress大学
U
Unit 42
PCI Perspectives
PCI Perspectives
S
Schneier on Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
V
Visual Studio Blog
Engineering at Meta
Engineering at Meta
The Cloudflare Blog
I
Intezer
宝玉的分享
宝玉的分享
N
News and Events Feed by Topic
Martin Fowler
Martin Fowler
B
Blog
美团技术团队
T
The Blog of Author Tim Ferriss
C
Cisco Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
酷 壳 – CoolShell
酷 壳 – CoolShell
The Last Watchdog
The Last Watchdog
J
Java Code Geeks
博客园_首页
A
About on SuperTechFans
Vercel News
Vercel News
Attack and Defense Labs
Attack and Defense Labs
H
Heimdal Security Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
小众软件
小众软件
H
Help Net Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
T
The Exploit Database - CXSecurity.com
Y
Y Combinator Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Webroot Blog
Webroot Blog
T
Tenable Blog

博客园 - .net技術

c语言难点 线程同步(转) stl学习(转帖2) stl 学习(转帖) visual C++ 6.0开发工具与调试 vc动态装载动态库 详细的MySQL C API CString,string,char*的综合比较 在Linux下安装和使用MySQL 人际关系的55个绝招 一个封装的socket类 一个linux下c++程序 一个网络扫描程序 VC数字图像处理编程 ASCII 一些函数 防盗链IHttpHandler(转自垃圾猪) 按比例显示图片大小 回车改变焦点
makefile
.net技術 · 2008-01-14 · via 博客园 - .net技術

一.生成库文件
cat test.h
#ifndef __TEST_H__
#define __TEST_H__
#include <string.h>

char CmdStr[200][200];

class TEST
{
    public:
              TEST();
        virtual ~TEST();
    public:
              int SplitBufByChar( char *buf1, char ch, char tc,int stno);
};
#endif
cat  test.cpp
#include "test.h"

TEST::TEST()
{
  for(int i=0;i<200;i++)
  {
    CmdStr[i][0]='\0';
  }
   
}
TEST::~TEST()
{
  for(int i=0;i<200;++i)
  {
    CmdStr[i][0]='\0';
  }
}

int TEST::SplitBufByChar( char *buf1, char ch, char tc,int stno)
{
  char *ss0, *ss1;
  int  i,j;
  char T[200][500];

  ss0 = buf1; i = 0;
  while ( (ss1=strchr( ss0, ch )) != NULL )  {
     *ss1 = 0; strcpy( T[stno+i], ss0 );
     i++; ss0= ss1+1; *ss1= ch;
  }

  if ( tc=='C' ) for (j=stno;j<stno+i;j++) strcpy(CmdStr[j],T[j]);
  return( i );
}
cat makefile
DEST=libtest.a
OBJS=test.o
CC= g++
CPPFLAGS = -O2 -Wall
SHAREFLAGS = -shared -fPIC
INCLUDES = -I.

$(DEST) : $(OBJS)
        $(CC) $(SHAREFLAGS) $(INCLUDES) $(CPPFLAGS) -o $@ $^

test.o : test.cpp test.h
        $(CC) $(INCLUDES) $(CPPFLAGS) -c $< -o $@

二.使用动态库
cat protest.cpp
#include "test.h"
#include <string>
#include <vector>

using namespace std;


typedef struct{
    int id;
    string name;
}STUDENT;

typedef std::vector <STUDENT> STRSET;

//extern char CmdStr[200][200];

int main()
{
 char sc[200];


 TEST test1;
 STUDENT stdt1,stdt2,stdt3;
 

 STRSET settest;
 stdt1.id=200;
 stdt1.name="GPRS100~SMS-03-17~新GPRS100元套餐办理~";
 stdt2.id=100;
 stdt2.name="GPRS200~SMS-03-18~新GPRS100元套餐办理~";
 stdt3.id=300;
 stdt3.name="GPRS300~SMS-03-19~新GPRS100元套餐办理~";


 settest.push_back(stdt1);
 settest.push_back(stdt2);
 settest.push_back(stdt3);

 for(std::vector <STUDENT>::iterator it=settest.begin();it !=settest.end();it++)
 {
  sprintf(sc,"%s",((STUDENT)*it).name.c_str());
   
        
        test1.SplitBufByChar(sc,'~','C',1);

        //test1.~TEST();
  printf("cmdstr[1]:%s\n",CmdStr[1]);
        printf("cmdstr[2]:%s\n",CmdStr[2]);
        printf("cmdstr[3]:%s\n",CmdStr[3]);
 }

 return 0;

}

cat makefile
DEST=protest
OBJS=protest.o
CC= g++
CPPFLAGS = -O2 -Wall
INCLUDES = -I. -I../libtest/
LIBS =-L../libtest/ -ltest

$(DEST) : $(OBJS)
        $(CC) $(INCLUDES) $(LIBS) $(CPPFLAGS) -o $@ $^

protest.o : protest.cpp
        $(CC) $(INCLUDES) $(CPPFLAGS) -c $< -o $@