`
ktc7000
  • 浏览: 34949 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

C语言函数:找到字符串中指定字符串并替换,输出为DLL

    博客分类:
  • dll
  • c
阅读更多
// convert9.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"
#include "convert9.h"
#include "windows.h"
#include "stdio.h"
#include "string.h"

BOOL APIENTRY DllMain( HANDLE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
)
{
    switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
    }
    return TRUE;
}
extern "C" _declspec(dllexport) int convert(char *convert, char *cont)
{
char StartFlag[5]="<";//左尖括号
    char EndFlag[5]=">";//右尖括号
    char flag_st[1000]="";//搜索存放左尖括号位置
    char flag_ed[1000]="";//搜索存放右尖括号位置
    char sharp_left[2]="<";
char sharp_right[2]=">";
char tmp[1000];//备份
char tmp1[1000];
char tmp2[1000];
    long unsigned num_pos=0;

//备份cont
strcpy(tmp, cont);
//左尖括号替换
    for (num_pos=0;num_pos < strlen(cont);)
    {
strcpy(flag_st,"");
strncat(flag_st, cont+num_pos, 4);
if (strcmp(flag_st, StartFlag) != 0)
{
num_pos++;
if (num_pos > strlen(cont))
{
printf("------------------------");
printf("Start flag not found !");
                 printf("------------------------");
break;
}
}
else
{
strcpy(tmp1, "");//tmp1变量初始化
             strncat(tmp1, cont, num_pos);//截止到"&lt;"前的内容存入变量tmp1
strcat(tmp1, sharp_left);//tmp1连接左尖括号存入tmp1
strcpy(tmp2, cont+num_pos+4);//将"&lt;"后的内容存入变量tmp2
strcpy(cont, tmp1);
strcat(cont, tmp2);//组合变量tmp1和tmp2内容,存入变量cont
}
}

//右边尖括号替换
for (num_pos=0; num_pos < strlen(cont);)
    {
strcpy(flag_ed, "");
strncat(flag_ed, cont+num_pos, 4);
if (strcmp(flag_ed, EndFlag) != 0)
{
num_pos++;
if (num_pos > strlen(cont))
{
printf("------------------------");
printf("End flag not found !");
                 printf("------------------------");
break;
}
}
else
{
strcpy(tmp1, "");//tmp1变量初始化
strncat(tmp1, cont, num_pos);//截止到"&lt;"前的内容存入变量tmp1
strcat(tmp1, sharp_right);//tmp1连接右尖括号存入tmp1
strcpy(tmp2, cont+num_pos+4);//将"&lt;"后的内容存入变量tmp2
strcpy(cont, tmp1);
strcat(cont, tmp2);//组合变量tmp1和tmp2内容,存入变量cont
}
    }
//结果存入conv
strcpy(convert, cont);
strcpy(cont, tmp);
return 0;
}

// This is an example of an exported variable
CONVERT9_API int nConvert9=0;

// This is an example of an exported function.
CONVERT9_API int fnConvert9(void)
{
return 42;
}

// This is the constructor of a class that has been exported.
// see convert9.h for the class definition
CConvert9::CConvert9()
{
return;
}
分享到:
评论

相关推荐

    C语言字符串处理函数

    几个字符串处理函数增强版 常用需求基本都能完成 已经编译成DLL 函数列表 兼容字符和串 void revstr char str 字符串反转 int substring char res int pos int len char substr 从pos开始取len个字符到substr中 ...

    将字符串传递到 DLL 过程

    本文将深入探讨如何在DLL过程中有效地传递字符串,特别是在使用Visual Basic进行开发时。 首先,我们要了解BSTR字符串类型。BSTR是微软的Automation或OLE自动化框架中定义的一种Unicode字符串格式,它包含一个头...

    JAVA调用C语言写的dll的方法和实例

    在我们的实例中,假设我们有一个名为"myDll.dll"的C语言编写的DLL,它包含了一个名为`addNumbers`的函数,该函数接受两个整数参数并返回它们的和。在C语言中,这个函数的声明可能如下: ```c extern "C" __declspec...

    c语言字符串分割,截取,子串查找,插入,删除

    int strreplace(char *res,char *substr,char *desstr)//替换res中的substr为desstr,1成功,0失败 int str_count(char *res,char *substr)//统计res中的substr出现的次数 int cut_str(char *res,char *mark,int pos,...

    c语言编译dll给易语言调用

    6. **数据类型映射**:C语言和易语言的数据类型可能不完全匹配,例如C语言的`char*`在易语言中可能是字符串。因此,需要理解两者的数据类型转换规则,确保数据正确传递。 7. **错误处理**:在C语言的DLL中,可以...

    java调用C语言编写的so库中的函数,java调用C语言编写的dll库中的函数

    本文将深入探讨这两种方法,以及如何在Java中调用C语言编写的SO(Linux下的动态链接库)和DLL(Windows下的动态链接库)中的函数。 首先,JNI是Java官方提供的原生接口,允许Java代码直接与本地代码交互。在Java中...

    魔兽1.24E内置字符串转换函数 以及 查找方法

    - 在与自定义DLL库交互时,需要将JASS字符串转换为C的`char`数组,以便C函数能正确解析。 总结,魔兽争霸III 1.24E版本中的字符串转换函数是地图开发者不可或缺的工具,它们帮助我们在JASS脚本中自如地处理字符串...

    C语言函数手册 chm

    例如,`printf`函数用于格式化输出,`scanf`函数则用于格式化输入,`malloc`和`free`用于动态内存分配与释放,`strcpy`和`strcat`处理字符串复制和连接,`pow`和`sqrt`在数学运算中发挥重要作用。这些函数是C语言...

    delphi 调用vc dll 获取返回数据 mac地址

    1. **定义DLL接口**:在VC++中,你需要声明一个导出函数,该函数接受适当参数(如:`extern "C" __declspec(dllexport) char* GetMacAddress()`),并返回字符串。 2. **分配内存**:在DLL内部,使用`malloc`或`new...

    Dll_file_generation_call--C_form.rar_C语言调用dll_generation

    这里,`AddFunc`是函数指针类型,`GetProcAddress`需要函数的名称作为字符串参数。 4. 调用DLL函数:现在你可以通过函数指针调用DLL中的函数了: ```c int result = addFunction(3, 5); printf("Result: %d\n",...

    C语言函数库的执行程序

    C语言函数库是编程中不可或缺的部分,它包含了一系列预先编译好的函数,供开发者在编写C程序时调用。这些库极大地丰富了C语言的功能,使得程序员能够更高效地完成各种任务,而无需从零开始编写所有代码。本文将深入...

    PC下C语言开发环境下的串口操作示例

    `read_char()`函数从`Buffer[]`中取出字符供上层应用使用,而`write_char()`函数则在串口的发送保持寄存器为空时,将字符写入串口进行发送。 综上所述,本文档的示例代码全面展示了在PC下C语言开发环境中实现串口...

    VC6MFC md5计算 返回CString字符串

    这个标题提到的"VC6MFC md5计算 返回CString字符串"是一个简单实用的实现方式,它允许开发者在MFC应用中方便地计算MD5值,并以常见的CString对象返回结果。 首先,我们要理解MD5的基本原理。MD5是由Ronald Rivest...

    csharp中调用c语言示例

    - 字符串处理:C#中的字符串是Unicode的,而C中的字符串通常是ASCII。使用`MarshalAs`特性进行转换。 - 错误处理:C语言中的错误通常通过返回值或设置全局变量来报告,而在C#中,可以使用`try-catch`语句处理异常...

    Python实现的调用C语言函数功能简单实例

    - 《Python 字符串操作技巧汇总》 - 《Python 入门与进阶经典教程》 - 《Python 文件与目录操作技巧汇总》 以上内容详细介绍了如何使用 Python 的 ctypes 模块来调用 C 语言函数。无论是进行系统级编程还是性能优化...

    python 调用c语言函数的方法

    然后,我们调用C函数并使用`string_at()`函数将返回的C字符串转换为Python字符串。 运行这个Python脚本,将输出"hello,world": ```bash $ python test.py hello,world ``` 通过这种方式,Python可以方便地利用...

    在Authorware中使用外部函数2022优秀文档.ppt

    这些函数由第三方软件公司或编程专家提供,为Authorware的图标脚本、文件脚本和字符串脚本增添了额外的功能。 一、外部函数定义: 外部函数,也称作用户自定义函数,不内置于Authorware的图标或脚本中。它们分为DLL...

    labview 调用windows API函数DLL摄像头采集程序,labview调用dll实例,LabView源码.zip

    例如,LabVIEW的字符串和C语言的字符串处理方式就不同,需要使用LabVIEW的字符串到C字符串的转换函数。 4. **调用DLL函数**:将正确的输入值连接到函数节点,运行LabVIEW程序,DLL函数就会被调用。输出值则会显示在...

    LabVIEW调用dll控制释放内存.rar

    例如,DLL可能需要C风格的字符串,而LabVIEW使用的是LabVIEW字符串,这需要使用“字符串到C风格字符串”等函数进行转换。 5. **错误处理**:在调用DLL时,应考虑错误处理机制,如检查返回值或使用异常处理结构。DLL...

    python引用DLL文件的方法

    pStr.value = sBuf.encode() # 将字符串转换为字节串 pVoid = ctypes.cast(pStr, ctypes.c_void_p).value nRst = dll.test(pVoid, len(pStr.value)) ``` 2. **方法二:定义参数类型** ```python test = dll....

Global site tag (gtag.js) - Google Analytics