最近在使用python 处理一些图形的东西。

实现:对一些512 的图进行像素遍历RGBA 变量, 查询通道不是 255 255 255 颜色 的矩阵,进行切图到空白

之前使用c#进行 确实快10 倍左右, python 要等很长时间,

c++ 我自己不上手,所以想用python 调用c#dll 。程序使用cpython 写的,后来查询 可以使用ironpython 和dotnet进行交换,

这些不过,家里测试没有问题,可以到公司 总是不能创建工程, 我也是醉了。

https://social.msdn.microsoft.com/Forums/zh-CN/80e5d654-caf4-48c8-9c19-a6e2ae5f22bb/vs

安装这个 我也找不出来什么问题。

搞了半天, 想这样  c++ 使用CLR 封装 c# dll  python 在调用c++的dll  这样一来下路不知道效率如何?

就开始了

using System;
using System.Collections.Generic;
using System.Text; namespace sen
{
public class Class1
{
public string each ()
{ return "ceshi";
}
}
}

然后c++ 进行封装

#pragma once

using namespace System;
#using "..\debug\sen.dll"
using namespace sen ;
using namespace std ; namespace lr { public ref class Clname
{
// TODO: 在此处添加此类的方法。
public: char* send ()
{
Class1 ^ci= gcnew Class1(); System::String ^c = gcnew System::String(ci->each());
char* ss = (char*)(void*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(c);
//printf (ss);
return ss ;
} };
}

编译是通过了。

麻烦出现在下一步, c++ 给python 调用还要绑定  看了看很麻烦

http://blog.csdn.net/fxjtoday/article/details/6059874

最后感觉有时间在研究吧, 感觉这样一部下路 在没有纯python快 那真实费力不讨好

、因为就是一个调用关系 ,后来想想 干脆使用  c#控制台

给python调用

using System;
using System.Collections.Generic;
using System.Text; namespace ConsoleApplication6
{
class Program
{
static int Main(string[] args)
{
if(args.Length>){
foreach (string i in args)
{
Console.WriteLine(i);
}
}
if (args[]=="")
{ Console.WriteLine();
return ;
}else
{
return ;
} }
}
}

编译成exe 给python 调用

#coding:utf-8

print "ss"

#from ctypes import*

#filename = r"N:\E\egret\Labs\projects\lr\Debug\lr.dll"

#func  = cdll.LoadLibrary(filename)
#print (func.send)
import os cmd = r"F:\c#\c#2005\ConsoleApplication6\ConsoleApplication6\bin\Debug\ConsoleApplication6.exe"
v = os.system("%s %s %s" % (cmd ,"dd" , "11dd"))
print "*************"
print type(v)

结果还是比较满意的,

ss
dd
11dd
*************
<type 'int'>

同时写好的 给max 脚本调用

cc = "F:\\c#\\c#2005\\ConsoleApplication6\\ConsoleApplication6\bin\\Debug\\ConsoleApplication6.exe"
c = DOSCommand (cc+ " sdf"+ "") "F:\c#\c#2005\ConsoleApplication6\ConsoleApplication6\bin\Debug\ConsoleApplication6.exe"
50

使用dos 作为中介实现cpython 和c# 交互的更多相关文章

  1. 深入浅出设计模式——中介者模式(Mediator Pattern)

    模式动机 在用户与用户直接聊天的设计方案中,用户对象之间存在很强的关联性,将导致系统出现如下问题: 系统结构复杂:对象之间存在大量的相互关联和调用,若有一个对象发生变化,则需要跟踪和该对象关联的其他 ...

  2. 【转】设计模式 ( 十五 ) 中介者模式Mediator(对象行为型)

    设计模式 ( 十五 ) 中介者模式Mediator(对象行为型) 1.概述 在面向对象的软件设计与开发过程中,根据"单一职责原则",我们应该尽量将对象细化,使其只负责或呈现单一的职 ...

  3. 设计模式之中介者模式(Mediator)

    中间者模者模式原理:中介者维持所有要交互对象的指针或者对象,所有对象维持一个中介者的指针或者对象. #include <iostream> #include <string> ...

  4. Java中介者设计模式

    中介者设计模式是一种很常见的设计模式,当中我们最为熟悉的就是我们的MVC框架.当中的C作为控制器就是一个详细的中介者,它的作用是把业务逻辑(Model),和视图(Viwe)隔离开来.使M V协调工作, ...

  5. 设计模式 ( 十六 ): Mediator中介者模式 -- 行为型

    1.概述 在面向对象的软件设计与开发过程中,根据“单一职责原则”,我们应该尽量将对象细化,使其只负责或呈现单一的职责,即将行为分布到各个对象中. 对于一个模块或者系统,可能由很多对象构成,而且这些对象 ...

  6. 设计模式 ( 十五 ) 中介者模式Mediator(对象行为型)

    设计模式 ( 十五 ) 中介者模式Mediator(对象行为型) 1.概述 在面向对象的软件设计与开发过程中,根据“单一职责原则”,我们应该尽量将对象细化,使其只负责或呈现单一的职责,即将行为分布到各 ...

  7. 行为类模式(五):中介者(Mediator)

    定义 定义一个中介对象来封装系列对象之间的交互.中介者使各个对象不需要显示地相互引用,从而使其耦合性松散,而且可以独立地改变他们之间的交互. 试想一下,如果多个类之间相互都有引用,那么当其中一个类修改 ...

  8. C#设计模式:中介者模式(Mediator Pattern)

    一,什么是中介者模式(Mediator Pattern)? 中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性.比如:如果我们实现两个人的交互,难道我们要定义两个对象 ...

  9. 设计模式之GOF23中介者模式

    中介者模式Mediator 场景:公司中各个部门需要交互,通过中介总经理进行交互 核心: 如果一个系统中对象之间的联系成网状结构,对象之间多对多,将导致关系极其复杂,这些对象统称为“同事关系” 我们可 ...

随机推荐

  1. python入门-测试代码

    断言 测试函数 def get_formatted_name(first,last): """generate a neatly formattef full name& ...

  2. pythone--002

    元组就是不可修改: 字典的索引不是自增的.  元组和列表是: 默认 是key 通过get  没有这个key  是none get可以有默认值: 通过索引 没有就报错. 检查字典中某个可以是否存在:ha ...

  3. 5. Java中序列化的serialVersionUID作用

    Java序列化是将一个对象编码成一个字节流,反序列化将字节流编码转换成一个对象. 序列化是Java中实现持久化存储的一种方法:为数据传输提供了线路级对象表示法. Java的序列化机制是通过在运行时判断 ...

  4. redis、memcache和mongodb各自的优缺点是什么

    redis.memcahce 比较相似,但与 mongodb 完全不同,几乎没有可比性. 总的来说 redis/memcache 是基于内存的,讲究的是性能,多用作缓存层,比如说存放session.而 ...

  5. 关于Nginx的负载均衡

    一.关于Nginx的负载均衡 在服务器集群中,Nginx起到一个代理服务器的角色(即反向代理),为了避免单独一个服务器压力过大,将来自用户的请求转发给不同的服务器.详情请查看我的另一篇博客. 二.Ng ...

  6. 用jconsole监视内存使用情况

    最近做性能压测,学习到可以用jconsole查看内存使用(连接端口:JMX_PORT=8060). 打开后发现,老年代内存一直无法释放,应该是应用启动参数中,老年代内存分配不够.加大内存,得到缓解:- ...

  7. IP Editor IP控件

    HWND hIpEdit; void __fastcall TForm2::FormCreate(TObject *Sender) { hIpEdit = CreateWindow(WC_IPADDR ...

  8. as3 三行三列 布满9个为一个界面

    var n:int=int(iconIndex/3); e.x =(int(n/3)*3+iconIndex%3)*557; e.y = int(iconIndex / 3) % 3 * 260; i ...

  9. as3 声明变量

    var a:int=0, b, c:Number=2; trace(a,b,c) /* 0 undefined 2 */ var a:int, b:uint, c:Number; var d:Stri ...

  10. Java并发知识(1)

    1. 进程和线程之间有什么不同? 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java运行环境是一个包含了不同的类和 ...